2016-08-09 17 views
1

在構建Android內核以啓用隨機wifi macaddress時出現錯誤。添加的語言是這樣的:未定義對prandom_u32的引用

if (randomize_mac && (changes & IFF_UP) && !(old_flags & IFF_UP)) { 
    /* randomize MAC whenever interface is brought up */ 
    struct sockaddr sa; 
    unsigned int mac4; 
    unsigned short mac2; 

    mac4 = prandom_u32(); 
    mac2 = prandom_u32(); 
    memcpy(sa.sa_data, &mac4, sizeof(mac4)); 
    memcpy((char *)sa.sa_data + sizeof(mac4), &mac2, sizeof(mac2)); 
    if (!is_valid_ether_addr(sa.sa_data)) 
     sa.sa_data[5] = 1; 
    sa.sa_data[0] &= 0xFC; 
    sa.sa_family = dev->type; 
    dev_set_mac_address(dev, &sa); 
} 

return ret; 

}`

我已經添加在頂部以下內容:

u32 prandom_u32(void); 

但仍然得到錯誤。請幫忙

回答

0

好的。解決了它:只是看着/include/linux/random.h,發現u32被定義爲random32。所以,我已將相應的行改爲

mac4 = random32(); 
    mac2 = random32();