2016-08-09 2 views
1

Ошибка при создании ядра для Android для включения рандомизированного macaddress wifi. Язык добавил это:Undefined Ссылка на 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

OK. Решил: просто посмотрел /include/linux/random.h и обнаружил, что u32 определяется как random32. Таким образом, я изменил соответствующие строки на

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