2016-08-09 2 views
1

랜덤 화 된 wifi 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

확인. 그것을 해결했습니다 : /include/linux/random.h에서 u32가 random32로 정의 된 것을 발견했습니다. 그래서 해당 줄을

으로 변경했습니다.
mac4 = random32(); 
    mac2 = random32(); 
관련 문제