2016-08-09 13 views
1

ランダム化された無線LANのmacaddressを有効にするためにAndroidのカーネルを構築中にエラーを取得しています。私が先頭に以下を追加した未定義の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(); 
関連する問題