Snow Leopard 10.6 (32/64비트)용 Broadcom BCM5722 / BCM5754/M / BCM5755/M / BCM5787/M / BCM5906/M 유선 랜 드라이버 (BCM5722D.kext)
Broadcom 오픈소스 프로그래머 가이드와 Linux(tg3) 및 FreeBSD(if_bge) 드라이버 소스를 기반으로 직접 개발한 Mac OS X 10.6 Snow Leopard(32비트 및 64비트)용 오픈소스 Broadcom NetXtreme / NetLink 유선 네트워크 카드 드라이버(BCM5722D.kext)입니다.
- 주 저자
- @adlan 게시일: 2011-02-12
- 소속 컬렉션
- OSx86 10.X 코어 아키텍처 및 부트 시스템
- 아카이브 기록 규모
- 누적 조회 273,637회 · 선별된 필드 노트 112건 (원본 게시물 125건에서 추출) · 2011-02-12 – 2012-08-23
- 참여 및 검증 멤버 (61)
- @adlan (36)@fyooo (7)@Astarael (6)@rals2007 (4)@ludacrisvp (3)@VIVXIX (3)@cephalopod (3)@quinielascom (2)@Dabluest (2)@abiogenesis (2)@tmacyunn (2)@ronin510 (2)@FredWst (2)@majamudo (2)@waldrondigital (2)@righteye (2)+45 more
- 관련 하드웨어 참조
- macOS Wi-Fi & BT Adapters ↗ SATA III & NVMe SSDs ↗ USB 3.2 Boot Flash Drives ↗
10.6.X용 Broadcom 유선 랜(NIC) 드라이버 - BCM5754/M, BCM5755/M, BCM5787/M, BCM5906/M 지원 (32/64비트 통합)
제 노트북에 탑재된 내장 랜카드(BCM5787M)를 제대로 구동하기 위해 직접 드라이버를 개발하기로 결심했습니다. 기존에도 작동하는 드라이버가 하나 있긴 했지만, 기존 AppleBCM5751Ethernet.kext를 헥스 에디터로 임의 패치한 버전이라 영구적인 해결책이 될 수 없었고 소스 코드조차 공개되어 있지 않았기 때문입니다. 뭐, 만약 기존 드라이버가 완벽했다면 이 프로젝트는 탄생하지도 않았겠지만요.
이 드라이버는 Broadcom의 오픈소스 개발자 리소스를 통해 공개된 'BCM5722 프로그래머 가이드(Programmer's Guide)' 문서를 기반으로 구현되었습니다. 부족한 추가 하드웨어 제어 정보는 Linux(tg3) 및 FreeBSD(if_bge) 오픈소스 드라이버 코드에서 참조했습니다. 기술 매뉴얼이 단일 칩셋뿐만 아니라 여러 파생 모델을 공통으로 다루고 있기 때문에, 문서에 명시된 주요 모델들에 대한 지원을 함께 포함시켰습니다.
지원 대상 모델 목록은 다음과 같습니다:
- BCM5722
- BCM5754
- BCM5754M
- BCM5755
- BCM5755M
- BCM5787
- BCM5787M #
- BCM5906 #
- BCM5906M #
(# 표시는 실기기 테스트 완료 모델)
현재 릴리스에서 아직 구현되지 않은 기능:
- Wake-on-LAN (WOL)
설치 방법 (Installation)
/System/Library/Extensions 경로에 설치합니다.
직접 S/L/E 폴더에 수동으로 복사한 뒤 디스크 권한을 복구하거나, 간편하게 KextWizard(k exts.com/view/1068-latest_kext_wizard_from_janek202.html)(kexts.com 미러)를 사용하여 설치하십시오.
버그 및 이슈 제보 (Issues)
사용 중 발견된 버그나 문제점은 https://github.com/adlan/BCM5722D/issues ↗ 에 제보해 주시기 바랍니다.
기여 및 소스 코드 (Contributing)
전체 소스 코드는 https://github.com/adlan/BCM5722D ↗ 에 공개되어 있습니다.
크레딧 (Credits)
- 프로그래머 가이드를 공개해 준 Broadcom
- Linux(tg3) 및 FreeBSD(if_bge) 드라이버 개발자분들
- InsanelyMac 포럼의 초기 베타 테스터분들 (acero, Hacktrix2006, quadomatic, queshaolangman, Zprood)
면책 조항 (Disclaimer)
이 드라이버는 Broadcom의 공식 지원이나 승인을 받은 소프트웨어가 아닙니다. 만약 사용 중 좀비 떼가 댁에 침입하더라도 저는 어떠한 책임도 지지 않습니다. 모든 사용에 따른 위험은 본인이 감수하시기 바랍니다.
업데이트 (Update)
장치 ID(Device ID)에 알파벳(16진수 A~F)이 포함되지 않은 순수 숫자형 모델(5722, 5754, 5755, 5787)에서 장치를 정상 감지하지 못하던 버그를 수정했습니다. 원인을 정확히 짚어주신 FredWst (osx 86.co/member.php?u=90020393) 님께 감사드립니다.
유용하게 쓰시길 바랍니다!
커뮤니티 실측 및 기술 필드 노트
총 125개의 원본 스레드 응답 중 기술적 가치가 높은 112개의 필드 노트 수록
BCM5906M이 탑재된 Lenovo N500 노트북입니다. 아주 잘 작동하며 현재까지 커널 패닉(KP)도 전혀 없습니다.
@chinaskyBCM5906M이 탑재된 Lenovo N500 노트북입니다. 아주 잘 작동하며 아직까지 커널 패닉(KP)도 전혀 없습니다.
잘 작동한다니 반가운 소식이네요!
혹시 Broadcom BCM57780 (pci14e4,1692) 모델에서도 작동하도록 지원해 주실 수 있나요?
감사합니다. BCM5787M에서 테스트해 보았는데 아주 잘 작동하는 것 같습니다.
혹시 드라이버가 시스템 로그에 디버그 메시지를 출력하지 않도록 설정할 수 있나요?
현재 제 시스템 로그에는 다음과 같이 찍힙니다:
BCM5722D (Build date/time: Feb 11 2011 16:21:32)
BCM5722D (setupDriver:920): MSI index on 1
BCM5722D (resetAdapter:144): 4B657654 to B49A89AB in 2687 iterations
my_name_adlan_BCM5722D: Model: BCM5787M NetLink (TM) Gigabit Ethernet
my_name_adlan_BCM5722D: Loaded successfully
BCM5722D (setPowerState:84): Changing power state from 1 to 0
my_name_adlan_BCM5722D: Ethernet address 00:11:22:33:44:55
BCM5722D (resetAdapter:144): 4B657654 to B49A89AB in 2638 iterations
BCM5722D (setMedium:471): Change medium: kIOMediumEthernetAuto
BCM5722D (setMedium:496): Change medium: kLinkDuplexNegotiate
BCM5722D (configureLinkAdvertisement:364): advertiseFe: 5E1
BCM5722D (configureLinkAdvertisement:365): advertiseGe: 300
BCM5722D (startAutoNegotiation:522): Adv reg: 5E1
@pat98usb혹시 Broadcom BCM57780 (pci14e4,1692) 모델에서도 작동하게 만들어 주실 수 있나요?
죄송합니다만, 현재로서는 제가 그 모델까지 지원하기는 어렵습니다. 대신 소스 코드를 전부 공개할 예정이니 관심 있는 분이 계신다면 직접 포팅을 시도해 보실 수 있을 것입니다.
@quinielascom감사합니다, BCM5787M에서 테스트해 보았는데 아주 잘 작동합니다. 혹시 드라이버가 시스템 로그(system.log)에 디버그 메시지를 출력하지 않도록 설정할 수 있나요? 현재 제 시스템 로그에는 다음과 같이 찍힙니다: BCM5722D (Build date/time: Feb 11 2011 16:21:32) BCM5722D (setupDriver:920): MSI index on 1 BCM5722D (resetAdapter:144): 4B657654 to B49A89AB in 2687 iterations my_name_adlan_BCM5722D: Model: BCM5787M…
현재 버전에서는 옵션으로 끌 수 없지만, 조만간 디버그 로그를 줄인 조용한(Non-chatty) 빌드 버전을 따로 업로드하겠습니다.
테스트해 주셔서 감사합니다!
제 5906M 카드를 (심지어 Lion에서도!) 작동하게 만들어 주셨군요! 너무 감격스러워서 말이 안 나올 지경입니다. 평생 안 될 줄로만 알았는데 정말 최고입니다! 대단히 감사합니다.
Dell XPS M1330 설치 실패 문의
Dell XPS M1330 노트북을 사용 중이며 하드웨어 정보에는 5906M 네트워크 카드로 표시됩니다. 그런데 올려주신 드라이버를 설치해 보았지만 작동하지 않네요. 시스템 환경설정 / 네트워크에 들어가 봐도 새로운 인터페이스가 전혀 나타나지 않습니다.
`/var/log` 폴더를 뒤져보니 `system.log`에 오직 다음 두 줄만 언급되어 있습니다:
com.apple.kextd[10]: BCM5722D.kext has no Info.plist file.
com.apple.kextcache[591]: BCM5722D.kext has no Info.plist file.
혹시 원인이 무엇일까요?
Marco
@webwolfDell XPS M1330 노트북 사용자입니다. 하드웨어 정보 상에는 5906M 랜카드로 나오는데, 드라이버를 설치해 보았지만 작동하지 않습니다. 시스템 환경설정 / 네트워크에 새 인터페이스가 전혀 잡히지 않네요. /var/log 디렉터리에서 찾은 유일한 관련 기록은 system.log에 찍힌 다음 메시지뿐입니다: com.apple.kextd[10]: BCM5722D.kext has no Info.plist file. com.apple.kextcache[591]:…
로그를 보니 Kext 내부에 `Info.plist` 파일이 없어서 로드에 실패한 것으로 나옵니다. 설치된 Kext 패키지 안에 실제로 `Info.plist`가 누락되어 있는지 확인해 보시겠어요? 만약 파일이 없다면 Kext를 삭제하고 다시 설치해 보시고, 다운로드한 원본 압축 파일도 깨지지 않았는지 점검해 보시기 바랍니다.
터미널(Terminal) 확인 명령어:
ls /System/Library/Extensions/BCM5722D.kext/Contents
@adlan잘 된다니 기쁘네요! 오오, 차기 버전인 Lion에서도 작동하나요? 대단하네요! 그런데 벌써 Lion은 어디서 구하신 건가요? :-$
어떤 '초록 악마(Green devil, 토렌트 사이트 Demonoid)'에게서 구했지요 ㅎㅎ
세상에, 이 스레드를 발견하고 저는 완전히 망연자실했습니다.
왜냐하면 저 역시 BCM5906M용 드라이버를 직접 밑바닥부터 개발하고 있었거든요.
지난 1월부터 `5722-PG101-R.pdf` 프로그래머 매뉴얼과 FreeBSD의 `if_bge.c` 소스를 읽어가며 작업해서 바로 오늘에야 체크섬 오프로딩, 멀티캐스트, 전원 상태 전환을 제외한 기본 RX 및 TX 패킷 송수신에 성공했는데 말입니다.
이제 어떻게 해야 할지 모르겠네요. 아직 공사 중인 제 Google Code 프로젝트(http://code.google.com/p/osx-bcm5906m/ ↗)를 그냥 지워버려야 할지, 아니면 끝까지 완성해서 거기에 업로드해야 할지... 이미 완성된 드라이버가 나왔으니 이제 와서 올리는 게 아무 의미가 없어진 것 같습니다
:
@abiogenesis세상에, 이 스레드를 발견하고 완전히 망연자실했습니다. 저 역시 BCM5906M용 드라이버를 직접 밑바닥부터 작성하고 있었거든요. 지난 1월부터 5722-PG101-R.pdf 매뉴얼과 FreeBSD의 if_bge.c 코드를 파고들어서 바로 오늘에야 체크섬 오프로딩, 멀티캐스트, 전원 상태 전환을 제외한 기본 RX/TX 송수신에 성공했는데 말이죠. 이제 아직 공사 중인 제 프로젝트를 그냥 폭파해야 할지…
아이고, 정말 안타깝네요.
사실 저는 처음에 제 노트북 랜카드(BCM5787M)를 쓰려고 개발을 시작했는데, 레퍼런스 매뉴얼에 BCM5906도 함께 문서화되어 있길래 겸사겸사 지원 목록에 추가한 것이었습니다.
하지만 이미 시작하셨으니 절대 멈추지 마세요! 끝까지 완성해 보시는 걸 추천합니다. 훌륭한 커널 드라이버 개발 연습이 될 뿐만 아니라, 거기서 얻은 경험이 앞으로 본인에게도, 그리고 해킨토시 커뮤니티 전체에도 큰 자산이 될 테니까요. 당장은 시간 낭비처럼 느껴질 수도 있겠지만 선택은 본인의 몫입니다. 만약 제가 그 입장이라면 끝까지 완성하는 길을 택할 것 같네요.
adlan 님,
정말 훌륭합니다!
다만 커널 로그에는 딱 다음 두 줄만 남도록 하는 편이 훨씬 좋을 것 같습니다:
my_name_adlan_BCM5722D: Model: BCM5787M NetLink (TM) Gigabit Ethernet
my_name_adlan_BCM5722D: Ethernet address 00:11:22:33:44:55
이렇게 나오면 로그가 훨씬 깔끔해질 겁니다.
@rals2007adlan 님, 정말 훌륭합니다! 다만 커널 로그에는 my_name_adlan_BCM5722D: Model: BCM5787M NetLink (TM) Gigabit Ethernet 및 my_name_adlan_BCM5722D: Ethernet address 00:11:22:33:44:55 정도만 남도록 하는 게 훨씬 깔끔할 것 같습니다.
불필요한 디버그 출력을 제거한 조용한(Non-chatty) 버전을 본문에 업로드했습니다.
공개해 주신 소스 코드 덕분에 제 드라이버에 있던 버그 몇 개를 고칠 수 있었습니다. 그리고 보답으로 작성자님의 `setMulticastList` 함수에서도 버그를 하나 발견한 것 같아 알려드립니다:
for (i = 0; i < count; i++) { crc = computeCRC32((const UInt8 *) addrs, 6); ... }
`5722-PG101-R.pdf` 매뉴얼에 따르면 배열 내의 모든 멀티캐스트 주소마다 각각 CRC32를 계산해야 하므로, 인자로 고정된 `addrs`가 아니라 "addrs + i" 또는 "&addrs[i]"가 들어가야 맞습니다.
@abiogenesis공개해 주신 코드 덕분에 제 드라이버의 버그 몇 개를 고칠 수 있었고, 보답으로 작성자님의 setMulticastList 함수에서도 버그를 하나 발견한 것 같습니다. 5722-PG101-R.pdf 매뉴얼에 따르면 배열 내의 모든 주소마다 각각 CRC를 계산해야 하므로, 포인터가 고정된 addrs가 아니라 "addrs + i" 또는 "&addrs[i]"가 되어야 합니다.
아차, 제 실수네요! 어쩌다 저걸 놓쳤을까요.
정확하게 짚어주셔서 정말 감사합니다!
BCM4357 rev1용 드라이버 제작도 가능한가요?
이 무선 랜(WLAN) 카드가 장착된 Lenovo G560 노트북을 가지고 있습니다.
만약 지원된다면 정말 환상적일 것 같습니다!
혹시 제작이 불가능하다면, OS X에서 사용하기에 어떤 내장 무선 랜카드를 구매해 교체하는 것이 좋을지 추천해 주실 수 있나요?
Lenovo S12에서 완벽 작동합니다
정말 훌륭합니다! Lenovo S12 넷북의 내장 유선 랜인 BCM 5906M에서 완벽하게 작동합니다.
감사합니다!
@Medienmensch혹시 BCM4357 rev1 무선 랜카드용 드라이버도 제작이 가능할까요? 이 WLAN 카드가 장착된 Lenovo G560을 쓰고 있는데 지원된다면 정말 좋을 것 같습니다! 만약 불가능하다면 OS X에서 쓰기에 어떤 무선 랜카드를 구매하는 게 좋을지 추천해 주실 수 있나요?
현재로서는 불가능하다고 말씀드릴 수밖에 없겠네요. 해당 칩셋은 공개된 API 문서도 없고, 참고할 만한 데이터시트나 프로그래머 매뉴얼, 오픈소스 드라이버가 존재하는지도 알 수 없기 때문입니다.
마음 편하게 외장 USB 무선 랜 어댑터를 구매하시는 것을 추천하며, 개인적으로는 D-Link DWA-110 모델을 잘 쓰고 있습니다. 호환되는 다른 무선 랜카드 모델들은 OSx86 프로젝트 위키의 하드웨어 호환성 목록(HCL) ↗에서 찾아보실 수 있습니다.
감사합니다, 감사합니다, 정말 감사합니다! 마침내 누군가 이 드라이버를 직접 개발해 내다니 믿기지가 않네요!
앞으로도 멋진 활동 부탁드립니다!
제 Lenovo S10e (4086RLG) 모델에서 아주 훌륭하게 작동합니다 :
@pat98usb혹시 Broadcom BCM57780 (pci14e4,1692) 모델에서도 작동하도록 지원해 주실 수 있나요?
제가 알기로 그 디바이스 ID 아래에 airport.kext라고 뜨는 걸 보면 무선 AirPort 드라이버 쪽 문제일 겁니다. 이 유선 랜 Kext를 설치하기 전에는 이더넷 항목이 아예 나타나지 않다가, 이 Kext를 깔고 나면 무선(airport pci14e4)과 유선 이더넷 두 개가 모두 정상적으로 잡힐 겁니다.
@adlan불필요한 디버그 출력을 제거한 조용한(Non-chatty) 버전을 본문에 업로드했습니다.
한 가지만 더 부탁드려도 될까요? 혹시 구형 Leopard 10.5.x 환경에서도 쓸 수 있도록 드라이버를 컴파일해 주실 수 있나요?
안녕하세요 adlan 님, 10.6.7 환경에서 한 가지 문제가 있습니다. 노트북을 1시간 혹은 그 이상 잠자기(Sleep) 상태로 재워두었다가 깨우면 드라이버가 먹통이 되면서 네트워크 연결이 끊어져 버립니다. 터미널에서 `kextunload`와 `kextload` 명령어로 드라이버를 내렸다가 다시 올리면 그제야 다시 연결이 살아납니다.
혹시 시스템 버전 문제일까요? 10.6.7 환경에서 새로 컴파일해야 하는 건지 싶어 디스크 권한 복구와 커널 캐시 재구축도 다 해보았지만 그대로입니다.
추가 수정(Edit):
32비트 10.6.7 환경에서 Xcode 3.2.5로 소스 코드를 직접 컴파일해 보았는데 다음과 같은 경고(Warning) 메시지가 뜹니다:
BCM5722D-18e3e93/BCM5722D.cpp:536: warning: implicit conversion shortens 64-bit value into a 32-bit value
@tmacyunn안녕하세요 adlan 님, 10.6.7 환경에서 문제가 하나 있습니다. 노트북을 1시간 이상 잠자기(Sleep) 상태로 두었다가 깨우면 드라이버가 먹통이 되면서 네트워크 연결이 끊어집니다. 터미널에서 kextunload로 내렸다가 다시 kextload로 올리면 그제야 다시 작동합니다. 시스템 문제일까요? 10.6.7 환경에서 새로 컴파일해야 하는 건지, 권한 복구와 캐시 재구축도 다 해봤는데…
그 증상은 제가 좀 더 자세히 조사해 보겠습니다. 혹시 잠자기에서 깨어난 직후의 커널 로그 메시지를 올려주실 수 있나요?
그리고 직접 컴파일할 때 뜨는 경고(Warning) 메시지는 무시하셔도 됩니다. 64비트 값을 하드웨어 레지스터 규격에 맞추기 위해 2개의 32비트 값으로 쪼개는 과정에서 발생하는 정상적인 형변환 알림이기 때문입니다.
요청하신 잠자기 복귀 직후의 로그입니다:
Friday, March 25, 2011 4:49:52 PM Asia/Shanghai
Mar 25 16:49:57 yuns-MacBook-Pro kernel[0]: System Sleep
Mar 25 16:50:17 yuns-MacBook-Pro kernel[0]: Wake reason =
Mar 25 16:50:17 yuns-MacBook-Pro kernel[0]: System Wake
Mar 25 16:50:17 yuns-MacBook-Pro kernel[0]: ApplePS2ALPSGlidePoint: ABMod Waking up Touchpad setting setTapEnable to 1
Mar 25 16:50:17 yuns-MacBook-Pro kernel[0]: USB (EHCI):Port 3 on bus 0xfa connected or disTconnectedhe USB d:ev porticSC(e 0x301US8B Op03ti)
Mar 25 16:50:17 yuns-MacBook-Pro kernel[0]: cal Mouse (Port 1 of Hub at 0x5d000000) may have caused a wake by issuing a remote wakeup (2)
Mar 25 16:50:18 yuns-MacBook-Pro kernel[0]: USBMSC Identifier (non-unique): 20060413092100000 0xbda 0x158 0x5195
그리고 잠자기에서 깨어났을 때 시스템 환경설정의 네트워크 창을 보면 상태 표시등은 '연결됨(녹색)'으로 나오지만, 실제로는 패킷이 전혀 통하지 않습니다.
참고로 이전에 올려주셨던 디버그 버전 Kext를 썼을 때의 잠자기 복귀 로그는 다음과 같습니다:
Mar 19 22:51:18 yuns-MacBook-Pro kernel[0]: System Sleep
Mar 19 22:51:27 yuns-MacBook-Pro kernel[0]: Wake reason =
Mar 19 22:51:27 yuns-MacBook-Pro kernel[0]: System Wake
Mar 19 22:51:27 yuns-MacBook-Pro kernel[0]: ApplePS2ALPSGlidePoint: ABMod Waking up Touchpad setting setTapEnable to 1
Mar 19 22:51:28 yuns-MacBook-Pro kernel[0]: USB (EHCI):Port 3 on bus 0xfa connected or disconnected: portSC(0x301803)
Mar 19 22:51:28 yuns-MacBook-Pro kernel[0]: The USB device USB Optical Mouse (Port 1 of Hub at 0x5d000000) may have caused a wake by issuing a remote wakeup (2)
Mar 19 22:51:28 yuns-MacBook-Pro kernel[0]: BCM5722D (setPowerState:84): Changing power state from 0 to 1
Mar 19 22:51:28 yuns-MacBook-Pro kernel[0]: BCM5722D (resetAdapter:144): 4B657654 to B49A89AB in 0 iterations
Mar 19 22:51:28 yuns-MacBook-Pro kernel[0]: BCM5722D (setMedium:471): Change medium: kIOMediumEthernetAuto
Mar 19 22:51:28 yuns-MacBook-Pro kernel[0]: BCM5722D (setMedium:496): Change medium: kLinkDuplexNegotiate
Mar 19 22:51:28 yuns-MacBook-Pro kernel[0]: BCM5722D (configureLinkAdvertisement:364): advertiseFe: 1E1
Mar 19 22:51:28 yuns-MacBook-Pro kernel[0]: BCM5722D (configureLinkAdvertisement:365): advertiseGe: 0
Mar 19 22:51:28 yuns-MacBook-Pro kernel[0]: BCM5722D (startAutoNegotiation:522): Adv reg: 1E1
Mar 19 22:51:28 yuns-MacBook-Pro kernel[0]: USBMSC Identifier (non-unique): 20060413092100000 0xbda 0x158 0x5195
Mar 19 22:51:29 yuns-MacBook-Pro kernel[0]: BCM5722D (setupPHY:100): Auxillary status: F53F
Mar 19 22:51:29 yuns-MacBook-Pro kernel[0]: BCM5722D (setupFlowControl:621): flowControl: 0
Mar 19 22:51:29 yuns-MacBook-Pro kernel[0]: my_name_adlan_BCM5722D: Link up: 100 MBps, full duplex. Flow control: disabled
방금 이 Kext를 테스트해 보았는데 제 BCM5787M을 제대로 작동하게 해줍니다. 게다가 "시스템 프로파일러(System Profiler)"에서도 카드의 정확한 모델명 정보가 표시되네요(기존에 10.6.3의 헥스 패치된 BCM5701 플러그인을 쓸 때는 DSDT 패치를 추가했음에도 실제 이름 대신 pci14e4,1693으로만 떴었습니다).
그런데 한 가지 문제가 있습니다 — Kext를 로드한 직후 시스템 전체가 엄청나게 느려졌습니다. 터미널에 간신히 sudo kextunload BCM5722D.kext를 입력해 언로드할 수 있을 정도로 버벅거리더군요. 기존 헥스 에디트 플러그인을 쓸 때는 이런 현상이 전혀 없었습니다.
약 5분 뒤에 다시 kextload 명령어로 로드해 보았더니 또 느려지긴 했는데, 처음보다는 증상이 훨씬 가벼워져서 체감상 첫 번째 버벅거림의 1/10 수준으로 줄어들었습니다.
혹시 코드 최적화나 폴링 루프 같은 부분과 관련이 있는 걸까요? 정확한 원인은 잘 모르겠습니다.
이 프로젝트가 꼭 성공하기를 진심으로 응원합니다 — 기존의 10.6.3 개조 Kext가 언제까지 작동해 줄지 아무도 모르는 노릇이니까요. 차기 OS인 Lion이나 당장 다음 마이너 업데이트에서 막혀버릴 수도 있고요.
감사합니다,
Astarael 드림
추신: 아직 영어를 배우는 중이라 서툰 점 양해 바랍니다.
@Astarael방금 Kext를 테스트해 보았는데 제 BCM5787M이 잘 작동합니다. 게다가 "시스템 프로파일러"에서도 카드의 실제 모델명이 정확하게 표시되네요(기존 10.6.3의 개조된 BCM5701 플러그인을 쓸 때는 DSDT 패치를 넣어도 실제 이름 대신 pci14e4,1693으로만 떴었거든요). 하지만 한 가지 문제가 있는데, Kext를 로드한 직후 시스템 전체가 엄청나게 느려졌습니다…
안녕하세요,
혹시 테스트용으로 빌드한 다음 Kext를 한 번 사용해 보시겠어요?
cl .ly/3e3l2N2t1n242a3O0T0I
적용 후 콘솔 로그에서 `BCM5722D`로 시작하는 줄들을 복사해 보내주시면 감사하겠습니다.
추신: 영어 실력은 전혀 신경 쓰지 마세요, 저도 마찬가지입니다.
Broadcom BCM5787M이 장착된 Acer Aspire 2920 노트북 사용자입니다.
본문에 첨부된 "BCM5722D.kext" 파일을 `System\Library\Extensions` 폴더에 넣고 재부팅해 보았지만 여전히 유선 랜이 작동하지 않습니다...
PC 사양: Acer Aspire 2920 (Intel Core 2 Duo, 칩셋: Intel 965)
운영체제: Mac OS X 10.6.6i By Hazard 배포판
추신: 이전에 Mac OS X 10.6.2 버전을 깔았을 때도 이 Kext를 넣어보았지만 결과는 똑같이 랜이 잡히지 않았습니다… 시스템 정보의 이더넷 카드 항목에도 아무것도 뜨지 않네요.
추추신: 라이브러리 확장 폴더에 Kext 파일을 복사해 넣으면 다음과 같은 경고 창이 뜹니다:
시스템 확장 프로그램을 사용할 수 없습니다(System extension cannot be used)
"/System/Library/…" 시스템 확장 프로그램이 부적절하게 설치되어 사용할 수 없습니다.
다시 설치해 보십시오…
도대체 뭐가 문제인 걸까요?
미리 감사드립니다.
이탈리아에서 인사드립니다.
@Domenic211Broadcom BCM5787M이 탑재된 Acer Aspire 2920 사용자입니다. 본문에 첨부된 "BCM5722D.kext" 파일을 System\Library\Extensions 폴더에 넣고 재부팅해 보았지만 여전히 유선 랜이 작동하지 않습니다... PC 사양: Acer Aspire 2920 (Intel Core 2 Duo, Intel 965 칩셋), OS: Mac OS X 10.6.6i Hazard 배포판. 추신: 10.6.2 버전에서도 시도해 보았지만…
안녕하세요,
보통 그 경고 팝업 메시지는 Kext 파일의 소유권 및 권한(Permissions)이 올바르게 설정되지 않았을 때 나타납니다. 이를 해결하려면 Kext 권한을 올바르게 변경해 주어야 합니다.
디스크 유틸리티(Disk Utility)를 실행해 디스크 권한 복구를 돌리시거나,
터미널(Terminal)에서 다음 명령어를 직접 실행하세요:
cd /System/Library/Extensions
sudo chmod -R 755 BCM5722D.kext
sudo chown -R 0:0 BCM5722D.kext
더 간단한 방법은 Kext Helper(k exts.com/downloads.php?do=file&id=250) 유틸리티를 사용해 설치하는 것입니다 (현재 공식 사이트가 다운되어 있어 kexts.com 미러 링크를 걸어둡니다).
@adlan혹시 테스트용으로 빌드한 다음 Kext를 한 번 사용해 보시겠어요? cl .ly/3e3l2N2t1n242a3O0T0I 적용 후 콘솔 로그에서 BCM5722D로 시작하는 줄들을 복사해 보내주시면 감사하겠습니다. 추신: 영어 실력은 전혀 신경 쓰지 마세요, 저도 마찬가지입니다.
안녕하세요, 요즘 워낙 바빠서 회신이 늦어져 죄송합니다.
보내주신 Kext를 `/S/L/E`에 넣은 뒤 `chmod`와 `chown`으로 권한을 맞추고 `kextload`로 로드했습니다. 시스템 콘솔(Console)에 기록된 로그는 다음과 같습니다:
11-04-18 18:13:12 sudo[255] astarael : TTY=ttys000 ; PWD=/Users/astarael ; USER=root ; COMMAND=/sbin/kextload /System/Library/Extensions/BCM5722D.kext/
11-04-18 18:13:13 kernel BCM5722D (Build date/time: Mar 25 2011 23:28:49)
11-04-18 18:13:14 kernel BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations
11-04-18 18:13:14 kernel my_name_adlan_BCM5722D: Model: BCM5787M NetLink (TM) Gigabit Ethernet
11-04-18 18:13:14 kernel my_name_adlan_BCM5722D: Loaded successfully
11-04-18 18:13:14 kernel my_name_adlan_BCM5722D: Ethernet address 00:1e:37:24:13:81
11-04-18 18:13:14 kernel BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations
11-04-18 18:13:14 kernel BCM5722D (setMedium:367): Change medium: kIOMediumEthernetAuto
11-04-18 18:13:14 kernel BCM5722D (setMedium:392): Change medium: kLinkDuplexNegotiate
11-04-18 18:13:14 kernel BCM5722D (configureLinkAdvertisement:567): advertiseFe: 5E1
11-04-18 18:13:14 kernel BCM5722D (configureLinkAdvertisement:568): advertiseGe: 300
11-04-18 18:13:14 kernel BCM5722D (startAutoNegotiation:590): Adv reg: 5E1
원하셨던 로그 내용이 이게 맞는지 모르겠네요 :-|
추신: Snow Leopard 환경에서는 KextHelper 사용을 권장하지 않으시는 편이 좋습니다 — 제대로 작동하지 않고 멈추는 경우가 많거든요. 대신 KextWizard를 한 번 테스트해 보세요 (포럼 규정상 외부 링크 첨부가 허용되는지 확실치 않아 직접 링크는 걸지 않겠습니다).
HP xw6600 워크스테이션의 온보드 랜인 Broadcom 5755 (Device ID 14e4:167b) 사용자입니다. 이 Kext를 설치해도 아무런 동작을 하지 않으며, `/var/log` 내의 어떤 로그 파일에도 관련 메시지가 일절 찍히지 않습니다.
Kext Helper b7과 Kext Wizard 두 도구로 여러 번 삭제 후 재설치 및 Kext 캐시 재구축을 해보았고, 본문에 첨부된 zip 파일은 물론 GitHub 소스를 내려받아 직접 Xcode로 빌드해서도 넣어보았지만 아무런 차이가 없습니다. DPCI Manager로 확인해 본 디바이스 ID도 분명히 일치합니다.
이제 뭘 더 시도해 봐야 할까요?
참고로 인터넷에 돌아다니는 해킹된 5701 Kext를 쓰면 IP도 할당받고 인터넷 연결 자체는 "작동"하긴 합니다만, 업로드 쪽에 심각한 결함이 있어서 속도가 처참하게 느려지거나 타임아웃이 걸리는 바람에 해결책을 찾다가 이곳까지 오게 되었습니다.
시스템을 부팅한 뒤 터미널에서 kextstat | grep BCM 명령어를 입력해 결과에 아무것도 뜨는지 확인해 보세요. 만약 아무것도 안 나온다면 Kext가 아예 메모리에 로드조차 되지 않고 있는 것입니다...
혹시 터미널에서 `kextload` 명령어로 강제 로드를 시도해 보셨나요?
답변이 늦어 죄송합니다. 가끔 이 스레드에 새 댓글이 올라온 걸 놓칠 때가 있네요.
@Astarael안녕하세요, 요즘 너무 바빠서 테스트가 늦어져 죄송합니다. 보내주신 Kext를 /S/L/E에 넣고 chmod와 chown으로 권한을 준 뒤 kextload로 로드했습니다. 시스템 콘솔(Console)에 찍힌 내용은 다음과 같습니다: 11-04-18 18:13:12 sudo[255] astarael : TTY=ttys000 ; PWD=/Users/astarael ; USER=root ; COMMAND=/sbin/kextload…
혹시 시스템이 느려지는 현상이 이번에도 계속 발생하나요?
콘솔에 찍힌 Kext 관련 로그는 저게 전부인가요? 그리고 저 로그 직후부터 시스템이 느려지기 시작하는지요?
추신: 맞습니다, Kext Helper는 종료할 때 응답 없음으로 멈추는 버그가 있어서 강제 종료를 해줘야 하죠. 그래도 Kext 설치 기능 자체는 제대로 수행하길래 귀찮아서 다른 툴을 찾아보진 않았었습니다. 좋은 유틸리티(KextWizard)를 추천해 주셔서 감사합니다. 직접 써보고 첫 번째 본문 안내도 업데이트해 두겠습니다.
@scritchyHP xw6600 워크스테이션의 온보드 랜인 Broadcom 5755 (Device ID 14e4:167b) 사용자입니다. 이 Kext를 깔아도 아무런 반응이 없으며 /var/log 안의 어떤 로그 파일에도 관련 기록이 전혀 남지 않습니다. Kext Helper b7과 Kext Wizard 양쪽 모두로 삭제 후 재설치 및 캐시 재구축을 해봤고, 스레드 첨부 파일과 소스 직접 빌드까지 다 해봤지만…
Astarael 님이 조언하신 대로 터미널에서 수동으로 Kext 로드를 시도해 보시고, 어떤 실패 메시지가 출력되는지 확인해 보세요. 만약 Kext가 정상적으로 메모리에 로드된다면 최소한 빌드 날짜/시간(Build date/time) 메시지라도 로그에 찍혀야 정상입니다.
사실 다른 분께도 이와 똑같은 증상 제보를 받은 적이 있어서 원인을 계속 추적 중인데, 아직 뚜렷한 실마리를 찾지 못하고 막다른 길에 부딪힌 상태입니다.
참고로 현재 사용 중이신 OS X는 리테일 순정(Vanilla) 설치인가요, 아니면 배포판(Distro) 설치인가요?
너무 성급하게 결론 내리기 싫어서 좀 지켜봤는데, 이제는 완전히 해결된 것 같습니다... 어찌 된 일인지
Kext를 로드한 지 약 24시간이 지났는데도 시스템이 느려지는 현상이 단 한 번도 발생하지 않았습니다. 적어도 지금까지는 아주 쾌적하네요!
콘솔(Console)에서 BCM으로 검색해 보니 이제 로그가 꽤 많이 쌓여 있습니다. 처음 Kext를 로드한 이후 지금까지 기록된 전체 로그입니다:
11-04-18 18:13:12 sudo[255] astarael : TTY=ttys000 ; PWD=/Users/astarael ; USER=root ; COMMAND=/sbin/kextload /System/Library/Extensions/BCM5722D.kext/
11-04-18 18:13:13 kernel BCM5722D (Build date/time: Mar 25 2011 23:28:49)
11-04-18 18:13:14 kernel BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations
11-04-18 18:13:14 kernel my_name_adlan_BCM5722D: Model: BCM5787M NetLink (TM) Gigabit Ethernet
11-04-18 18:13:14 kernel my_name_adlan_BCM5722D: Loaded successfully
11-04-18 18:13:14 kernel my_name_adlan_BCM5722D: Ethernet address 00:1e:37:24:13:81
11-04-18 18:13:14 kernel BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations
11-04-18 18:13:14 kernel BCM5722D (setMedium:367): Change medium: kIOMediumEthernetAuto
11-04-18 18:13:14 kernel BCM5722D (setMedium:392): Change medium: kLinkDuplexNegotiate
11-04-18 18:13:14 kernel BCM5722D (configureLinkAdvertisement:567): advertiseFe: 5E1
11-04-18 18:13:14 kernel BCM5722D (configureLinkAdvertisement:568): advertiseGe: 300
11-04-18 18:13:14 kernel BCM5722D (startAutoNegotiation:590): Adv reg: 5E1
11-04-18 22:04:02 kernel BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations
11-04-18 22:04:02 kernel BCM5722D (setPowerState:84): Changing power state from 1 to 0
11-04-19 06:01:56 kernel BCM5722D (setPowerState:84): Changing power state from 0 to 1
11-04-19 06:01:57 kernel BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations
11-04-19 06:01:57 kernel BCM5722D (setMedium:367): Change medium: kIOMediumEthernetAuto
11-04-19 06:01:57 kernel BCM5722D (setMedium:392): Change medium: kLinkDuplexNegotiate
11-04-19 06:01:57 kernel BCM5722D (configureLinkAdvertisement:567): advertiseFe: 5E1
11-04-19 06:01:57 kernel BCM5722D (configureLinkAdvertisement:568): advertiseGe: 300
11-04-19 06:01:57 kernel BCM5722D (startAutoNegotiation:590): Adv reg: 5E1
11-04-19 14:39:59 kernel BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations
11-04-19 14:39:59 kernel BCM5722D (setPowerState:84): Changing power state from 1 to 0
11-04-19 14:39:59 kernel BCM5722D (setPowerState:84): Changing power state from 0 to 1
11-04-19 14:39:59 kernel BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations
11-04-19 14:39:59 kernel BCM5722D (setMedium:367): Change medium: kIOMediumEthernetAuto
11-04-19 14:39:59 kernel BCM5722D (setMedium:392): Change medium: kLinkDuplexNegotiate
11-04-19 14:39:59 kernel BCM5722D (configureLinkAdvertisement:567): advertiseFe: 5E1
11-04-19 14:39:59 kernel BCM5722D (configureLinkAdvertisement:568): advertiseGe: 300
11-04-19 14:39:59 kernel BCM5722D (startAutoNegotiation:590): Adv reg: 5E1
11-04-19 14:52:49 kernel BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations
11-04-19 14:52:49 kernel BCM5722D (setPowerState:84): Changing power state from 1 to 0
11-04-19 14:53:03 kernel BCM5722D (setPowerState:84): Changing power state from 0 to 1
11-04-19 14:53:03 kernel BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations
11-04-19 14:53:03 kernel BCM5722D (setMedium:367): Change medium: kIOMediumEthernetAuto
11-04-19 14:53:03 kernel BCM5722D (setMedium:392): Change medium: kLinkDuplexNegotiate
11-04-19 14:53:03 kernel BCM5722D (configureLinkAdvertisement:567): advertiseFe: 5E1
11-04-19 14:53:03 kernel BCM5722D (configureLinkAdvertisement:568): advertiseGe: 300
11-04-19 14:53:03 kernel BCM5722D (startAutoNegotiation:590): Adv reg: 5E1
추신: 평소에는 주로 무선 랜을 써서 유선 이더넷을 연결할 일이 거의 없지만, 이전에 테스트했을 때도 연결은 잘 되었었고 지금도 `ifconfig` 출력과 시스템 프로파일러에 컨트롤러가 정상 인식되어 있으니 유선 통신도 문제없을 것 같습니다. 부활절 연휴에 본가로 돌아가면 유선 케이블을 꽂아 본격적으로 테스트해 보겠습니다.
@Astarael설레발치기 싫어서 좀 지켜봤는데, 이제는 완전히 괜찮아진 것 같습니다... 어찌 된 영문인지 Kext를 로드한 지 24시간 정도 지났는데 예전 같은 시스템 속도 저하 현상이 전혀 나타나지 않네요. 적어도 지금까지는요. 콘솔에서 BCM으로 검색해 보니 이제 로그가 좀 더 나왔습니다. Kext 로드 이후 찍힌 전체 내역입니다: 11-04-18 18:13:12 sudo[255] astarael : TTY=ttys000 ;…
바로 제가 가장 듣고 싶었던 반가운 소식이네요!
..
11-04-19 14:39:59 kernel BCM5722D (setPowerState:84): Changing power state from 1 to 0
11-04-19 14:39:59 kernel BCM5722D (setPowerState:84): Changing power state from 0 to 1
..
11-04-19 14:52:49 kernel BCM5722D (setPowerState:84): Changing power state from 1 to 0
11-04-19 14:53:03 kernel BCM5722D (setPowerState:84): Changing power state from 0 to 1
다만 올려주신 로그 메시지를 보니 조금 흥미로운 점이 눈에 띄네요.. 전원 상태(Power state)가 갑자기 1에서 0으로, 다시 0에서 1로 급격히 바뀌는 기록이 여러 번 보이는데 정작 링크 상태(Link state) 알림은 전혀 찍히지 않았군요.
어쨌든 꼼꼼하게 테스트해 주셔서 대단히 감사합니다!
제 생각에 그 전원 상태 변경 로그들은 제가 중간에 노트북 잠자기(Sleep)를 몇 번 사용해서 기록된 것 같습니다. 그러니 전혀 걱정하지 않으셔도 됩니다. 게다가 이 Kext는 잠자기 기능도 전혀 방해하지 않고 완벽하게 호환되네요.
BCM5906이 탑재된 제 Lenovo S10 넷북에서 이 Kext를 사용하고 있습니다. 지금까지 정말 훌륭하게 잘 작동하네요!
그런데 본문의 "미구현 기능" 목록을 보니 과거에:
BCM5906/M - Isochronous Send Ring
항목이 적혀 있던데, 이게 저희 BCM5906 사용자들에게 실질적으로 어떤 의미인가요? 일상적인 기능 중에 못 쓰게 되는 게 있는 건가요?
아울러 이더넷 연결로 내부망에서 데이터를 전송할 때 약 6MB/sec 정도의 속도가 나오는데, 다른 분들은 속도가 어느 정도 나오시나요?
@Astarael그 전원 상태 변경 로그들은 아마 제가 중간에 노트북 잠자기(Sleep)를 몇 번 사용해서 찍힌 것 같습니다. 그러니 걱정하지 않으셔도 됩니다. 아울러 이 Kext는 잠자기 기능도 전혀 방해하지 않고 잘 작동하네요.
아하, 전원 꺼짐(0)과 켜짐(1) 사이의 시간 간격이 워낙 짧길래(같은 14:39:59초) 왜 그런가 궁금했었습니다.
실사용에 아무런 문제가 없다면 제 호기심은 그냥 접어두기로 하죠.
@ronin510BCM5906이 탑재된 Lenovo S10 넷북에서 이 Kext를 아주 잘 쓰고 있습니다! 지금까지 정말 훌륭하게 작동하네요! 그런데 본문의 "미구현 기능" 목록을 보니 BCM5906/M - Isochronous Send Ring 항목이 있던데, 이게 저희 BCM5906 사용자들에게 실질적으로 어떤 의미인가요? 일반적인 기능 중 못 쓰게 되는 게 있나요? 그리고 파일 전송 시 속도가 약 6MB/sec 정도 나오는데…
안녕하세요, 잘 작동한다니 기쁩니다!
등시성 송신 링(Isochronous Send Ring)은 송신(TX) 측의 처리 성능을 높여주는 부가 기능으로, 주로 실시간 데이터 스트리밍 등에 유리합니다. 다만 제가 Linux(tg3)와 FreeBSD(if_bge) 드라이버 소스 코드를 분석할 때도 그 기능을 실제로 구현해 놓은 코드는 보지 못했던 것으로 기억합니다(설령 제가 놓쳤을 수도 있지만 거의 확실합니다). 따라서 일반적인 사용 기능에는 아무런 지장이 없습니다.
실제 파일 전송 속도의 경우 다른 사용자분들이 따로 수치를 올려주신 적이 없고 저도 물어본 적이 없어서 정확한 비교는 어렵습니다. 다만 제가 개발 당시에 netperf(net perf.org/netperf/)와 iperf(iperf.sourc eforge.net/) 같은 네트워크 벤치마크 툴로 측정해 보았을 때는, 기존의 헥스 패치 드라이버와 비교해 오차 범위 내의 대등한 성능이 나왔습니다. 만약 구체적인 벤치마크 결과 데이터가 궁금하시다면 나중에 하드 디스크 깊숙한 곳을 뒤져서 찾아 올려드리겠습니다.
Lenovo G530 노트북 사용자입니다.
이 Kext를 설치했더니 부팅 중 커널 패닉(Kernel Panic)이 발생합니다.
@michalskieLenovo G530 노트북 사용자인데 이 Kext를 설치했더니 커널 패닉(KP)이 발생했습니다.
안녕하세요, 확인이 늦어 죄송합니다.
원인 파악을 위해 다음 정보를 알려주시겠어요?
- 정확한 랜카드 칩셋 모델명 (Device ID)
- OS 설치 방식 (리테일 순정 Vanilla / Hazard, iAtkos 등의 배포판 여부)
BCM 57788 모델 지원 확인
작성자님의 Kext가 (지금까지는) 흠잡을 데 없이 완벽하게 작동합니다!
`Info.plist`에 BCM 57788의 하드웨어 ID(1691)만 추가로 넣어주었더니 바로 생생하게 작동하네요.
데이터 전송 처리량(Throughput)도 아주 양호합니다.
배포하시는 기본 Kext의 `Info.plist`에도 이 디바이스 ID를 기본 포함해 두시면 이 카드를 쓰는 다른 분들께도 큰 도움이 될 것 같습니다.
아, 참고로 제 테스트 환경은 OS X Server 10.6 리테일 DVD 설치 + 10.6.7 콤보 업데이트입니다.
@derekj0571드라이버가 (지금까지는) 흠잡을 데 없이 완벽하게 작동합니다! Info.plist에 BCM57788의 하드웨어 ID(1691)만 한 줄 추가해 주었더니 바로 생생하게 날아다니네요. 전송 처리량(Throughput)도 아주 좋습니다. 배포판 기본 목록에 이 카드 ID도 정식으로 추가해 두시면 좋을 것 같습니다. 참고로 제 환경은 OS X Server 10.6 리테일 DVD 설치 + 10.6.7 콤보 업데이트입니다.
안녕하세요, 휴가를 다녀오느라 답변이 늦어 죄송합니다.
와, 그 모델에서도 작동할 줄은 전혀 예상치 못했네요! 그렇게 완벽하게 작동한다면 공식 지원 모델 목록과 `Info.plist`에 정식으로 추가해 두겠습니다.
테스트 및 제보 정말 감사합니다!
신형 Intel Xeon 서버인 Dell PowerEdge T110 (Device ID 14e4:165A)에서는 작동하지 않습니다.
터미널에서 수동으로 Kext를 로드하는 것은 가능해 보이지만 부팅 시 자동 로드가 되지 않으며 장치를 전혀 인식하지 못합니다. `lspci` 명령어로는 분명히 BCM5722 카드로 잡히는데, Kext가 카드에 붙지(Attach) 않아서 네트워크 지원이 안 되네요.
@ludacrisvp최신 Intel Xeon 서버인 Dell PowerEdge T110 (PCI ID 14e4:165A)에서는 작동하지 않습니다. Kext를 수동으로 로드하는 건 가능한데 부팅 시 자동 로드가 안 되며 장치를 전혀 인식하지 못합니다. lspci 명령어로는 BCM5722 카드로 분명히 잡히는데, Kext가 카드에 붙지(Attach) 않아서 네트워크가 안 되네요.
`Info.plist`의 `IONameMatch` 배열에 `14E4,165A`를 직접 추가해 보셨을 것으로 생각합니다.
사실 이 프로젝트 이름이 `BCM5722D`이긴 하지만, 정작 개발할 당시에는 BCM5722 모델을 지원 목록에서 빼두었고 코드 작성 시에도 미처 고려하지 않았었습니다. 프로그래머 매뉴얼을 다시 확인해서 이 모델을 지원하기 위해 추가해야 할 코드 수정 사항이 있는지 살펴본 뒤, 최대한 빨리(아마 이번 주말쯤) 테스트용 Kext를 보내드리겠습니다.
Dell Precision T7400 워크스테이션 미작동 문의
안녕하세요, 제 워크스테이션에서 이 Kext를 시도해 보았는데 `/S/L/E`에 넣어도 Kext가 아예 로드조차 되지 않습니다.
혹시나 해서 `IONetworkingFamily.kext/Contents/PlugIns` 안에도 넣어보았지만 역시 소용이 없네요(`IONetworkingFamily` 자체는 정상 로드됩니다).
환경은 10.6.7 64비트(x64)입니다.
`lspci -nn` 실행 결과는 `14e4:167a (rev 02)`로 나옵니다.
도움 주시면 감사하겠습니다.
사실 거의 작동 직전까지는 갔었습니다. 사내 네트워크의 DHCP 서버로부터 IP를 할당받으려면 MAC 주소를 수동으로 지정해 주어야 했는데, 그렇게 세팅하고 웹페이지를 열려고 시도하는 순간 `IONetworkingFamily.kext` 관련 에러를 뿜으며 바로 커널 패닉(KP)이 발생합니다! 웹페이지를 열지 않고 가만히 두어도 약 5분 정도 지나면 똑같은 에러로 커널 패닉이 나고요. MAC 주소를 수동 지정하지 않아도 마찬가지로 커널 패닉이 터집니다. 지난주에 이것 때문에 진을 다 빼고 화가 나서 결국 MacBook Air용 Apple 정품 USB 이더넷 어댑터를 사서 꽂았습니다. 그래도 월요일에 다시 출근하면 내장 랜카드에서 다른 Kext 버전들을 좀 더 테스트해 볼 생각입니다.
포럼의 다른 곳에서 이미 언급된 내용이라면 죄송합니다만, 제가 이 스레드만 구독해서 보고 있다 보니 말씀드립니다.
제가 마지막으로 방문했던 이후로 최근의 댓글들과 업데이트 내역 일부가 삭제된 것 같습니다. 아마 포럼 서버가 이전 백업 데이터베이스로 롤백된 모양인데, 본문 첫 번째 게시물과 첨부된 Kext 파일도 다시 구버전으로 되돌아가 있습니다. 아마 작성자님께서는 최신 버전을 업로드했다고 생각하셨겠지만 사이트가 과거 시점으로 복원되면서 덮어써진 듯합니다.
@ronin510포럼의 다른 곳에서 이미 언급되었을지도 모르지만 저는 이 스레드만 보다 보니 말씀드립니다. 제가 마지막으로 방문했던 이후로 최근 댓글들과 업데이트 내용이 일부 날아간 것 같습니다. 사이트가 이전 백업본으로 롤백된 모양인데, 본문 첫 글과 첨부 Kext도 다시 구버전으로 돌아가 있습니다. 아마 작성자님께서 새 버전을 올렸다고 생각하셨는데 서버 롤백 때문에…
네, 저도 방금 그 사실을 눈치챘습니다. 최근 댓글 몇 개가 사라졌고, 분명 얼마 전에 본문을 업데이트했는데도 첫 페이지 내용이 예전 구버전 상태로 되돌아가 있네요.
@ludacrisvp사실 거의 작동 직전까지는 갔었습니다. 회사 사내망 DHCP에서 IP를 할당받으려면 MAC 주소를 수동으로 지정해 줘야 했는데, 그렇게 연결하고 웹페이지를 열려고 하면 IONetworkingFamily.kext 관련 에러를 뿜으면서 바로 커널 패닉(KP)이 터집니다! 웹페이지를 안 열어도 약 5분 정도 지나면 똑같은 에러로 커널 패닉이 나고요. MAC 주소를 안 넣어도 증상은…
솔직히 말씀드리면 왜 그런 커널 패닉이 발생하는지 저도 짐작이 가지 않네요, 죄송합니다. 혹시 제가 최근에 새로 보내드린 테스트용 Kext로 해보신 건가요?
그리고 방금 님의 서명란(Signature)에 적힌 사양을 봤는데, 혹시 Snow Leopard가 아니라 Leopard(10.5)에 설치하고 계신 건가요? 이 드라이버는 10.6 SDK 기준으로 작성되어서, Leopard용으로 재컴파일하고 `Info.plist` 의존성을 수정하지 않은 상태에서도 정상 작동할지는 장담하기 어렵습니다.
제 `system.log`는 물론이고 `/var/log` 디렉터리 전체를 뒤져봐도 BCM에 관한 로그는 단 한 줄도 보이지 않습니다:
bash-3.2# pwd /var/log bash-3.2# grep BCM * bash-3.2# ls /System/Library/Extensions/BCM5722D.kext/Contents/ Info.plist MacOS Resources bash-3.2#
추가 커뮤니티 필드 노트 60건 펼치기전체 아카이브 기록
adlan
Source is synced with your latest binary release ?
@rals2007adlan 님, GitHub의 소스 코드가 최신 바이너리 릴리스와 동기화되어 있나요?
네, 방금 가장 최신 커밋 소스를 바탕으로 빌드한 새 바이너리로 본문 첫 번째 게시물의 첨부 Kext를 업데이트해 두었습니다.
@fyooo제 system.log는 물론이고 /var/log 디렉터리 전체를 뒤져봐도 BCM에 관한 로그는 단 한 줄도 보이지 않습니다.
만약 Kext가 메모리에 정상 로드되었다면 최소한 빌드 날짜/시간(Build date/time) 메시지라도 반드시 찍혀야 합니다. 아무것도 없다면 Kext 자체가 아예 로드되지 않았다는 뜻입니다. 이전에 올려주셨던 에러 메시지 스크린샷을 제가 미처 보지 못했는데, 혹시 다시 한 번 올려주실 수 있나요?
@adlanIf the kext is loaded, it should at least shows a build date/time. So that means the kext isn't loaded. Actually I didn't have the chance to see the image of error message you posted before, can you post it again?
I just tried to load this kext manually in terminal:
bash-3.2# kextload BCM5722D.kext/ /Users/oo/Downloads/BCM5722D.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8). bash-3.2#
@fyooo터미널에서 수동으로 이 Kext를 로드해 보았습니다: bash-3.2# kextload BCM5722D.kext/ /Users/oo/Downloads/BCM5722D.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8). bash-3.2#
Kext의 파일 소유권과 권한(Ownership/Permissions)을 올바르게 변경해 주어야 합니다. 그렇지 않으면 보안 정책상 `kextd` 데몬이 Kext 로드를 거부합니다.
sudo chown -R root:wheel BCM5722D.kext
sudo chmod -R 755 BCM5722D.kext
@adlanyou need to change the kext ownership/permissions , else kextd will not load the kext. sudo chown -R root:wheel BCM5722D.kext sudo chmod -R 755 BCM5722D.kext
Thanks, adlan
Maybe I should show my NIC information first:
14e4; Broadcom Corporation; 167a; NetXtreme BCM5754 Gigabit Ethernet PCI Express; Network controller; Ethernet controller
So now I change the permission of the kext file:
oos-iMac:Downloads oo$ ls BCM5722D.kext/
Contents
oos-iMac:Downloads oo$ sudo chown -R root:wheel BCM5722D.kext
oos-iMac:Downloads oo$ sudo chmod -R 755 BCM5722D.kext
oos-iMac:Downloads oo$ sudo kextload BCM5722D.kext
It seems nothing happen.
THe log is:
oos-iMac:Downloads oo$ grep BCM /var/log/*
/var/log/system.log:May 18 15:35:29 oos-iMac sudo[155]: oo : TTY=ttys000 ; PWD=/Users/oo/Downloads ; USER=root ; COMMAND=/usr/sbin/chown -R root:wheel BCM5722D.kext
/var/log/system.log:May 18 15:35:40 oos-iMac sudo[156]: oo : TTY=ttys000 ; PWD=/Users/oo/Downloads ; USER=root ; COMMAND=/bin/chmod -R 755 BCM5722D.kext
/var/log/system.log:May 18 15:35:49 oos-iMac sudo[157]: oo : TTY=ttys000 ; PWD=/Users/oo/Downloads ; USER=root ; COMMAND=/sbin/kextload BCM5722D.kext
oos-iMac:Downloads oo$
Thank you all the same:)
fyooo
You fix it where you installed the kexts.
chmod -R 755 /System/Library/Extensions/BCM5722D.kext
chown -R root:wheel /System/Library/Extensions/BCM5722D.kext
touch /System/Library/Extensions
@rals2007fyooo You fix it where you installed the kexts. chmod -R 755 /System/Library/Extensions/BCM5722D.kext chown -R root:wheel /System/Library/Extensions/BCM5722D.kext touch /System/Library/Extensions
I'd tried to use KextHelper to install this kext, but it can not work.
I can't see any information about BCM in system.log
@fyoooKextHelper를 사용해서 이 Kext를 설치해 보았지만 여전히 작동하지 않습니다. system.log에도 BCM에 관한 정보가 전혀 보이지 않네요.
다음과 같이 `kextutil` 명령어에 상세 출력 옵션(`-v 4`)을 주어 수동으로 로드해 보시고, 터미널에 출력되는 결과 전문을 여기에 올려주세요:
sudo kextutil -v 4 BCM5722D.kext
@adlantry loading it using kextutil with high verbosity level and put its output here sudo kextutil -v 4 BCM5722D.kext
Thanks, that's what it shows:
oos-iMac:Downloads oo$ sudo kextutil -v 4 BCM5722D.kext
Password:
Kext library architecture set to x86_64.
Kext library recording diagnostics for: validation authentication dependencies warnings.
BCM5722D.kext appears to be loadable (not including linkage for on-disk libraries).
Loading BCM5722D.kext.
Reading load info for all kexts.
Reading loaded kext info from kernel.
Adding /Users/oo/Downloads/BCM5722D.kext to mkext.
/Users/oo/Downloads/BCM5722D.kext added 79552-byte noncompressed executable to mkext.
Created mkext for architecture x86_64 containing 1 kexts.
Loading BCM5722D.kext.
(kernel) Received request from user space to load kext my.name.adlan.BCM5722D.
(kernel) Recorded kext my.name.adlan.BCM5722D as a candidate for inclusion in prelinked kernel.
(kernel) Loading kext my.name.adlan.BCM5722D.
(kernel) Allocated link buffer for kext my.name.adlan.BCM5722D at 0xffffff7f8076f000 (28672 bytes).
(kernel) Kext my.name.adlan.BCM5722D executable loaded; 7 pages at 0xffffff7f8076f000 (load tag 95).
(kernel) Kext my.name.adlan.BCM5722D calling module start function.
(kernel) Kext my.name.adlan.BCM5722D registered class my_name_adlan_BCM5722D.
(kernel) Kext my.name.adlan.BCM5722D has IOService subclass my_name_adlan_BCM5722D; enabling autounload.
(kernel) Kext my.name.adlan.BCM5722D is now started.
(kernel) Kext my.name.adlan.BCM5722D sending 1 personality to the IOCatalogue and starting matching.
(kernel) Kext my.name.adlan.BCM5722D loaded.
Successfully loaded BCM5722D.kext.
BCM5722D.kext successfully loaded (or already loaded).
After that, I checked the system.log file:
oos-iMac:Downloads oo$ grep BCM /var/log/system.log
May 19 19:56:04 oos-iMac sudo[152]: oo : TTY=ttys000 ; PWD=/Users/oo/Downloads ; USER=root ; COMMAND=/usr/bin/kextutil -v 4 BCM5722D.kext
oos-iMac:Downloads oo$
It seems to be success, but I still can't connect to internet.
@fyooo감사합니다, 실행 결과는 다음과 같습니다: ... 그 후 system.log 파일을 확인해 보았습니다: oos-iMac:Downloads oo$ grep BCM /var/log/system.log May 19 19:56:04 oos-iMac sudo[152]: oo : TTY=ttys000 ; PWD=/Users/oo/Downloads ; USER=root ; COMMAND=/usr/bin/kextutil -v 4 BCM5722D.kext oos-iMac:Downloads oo$ 로드는 성공한 것처럼 보이는데 여전히…
엉뚱한 로그 파일을 검색하셨네요. 커널 확장 드라이버의 출력 로그는 `system.log`가 아니라 `kernel.log`에 기록됩니다.
아울러 Kext를 로드한 직후 터미널에서 `ifconfig`를 실행한 출력 결과도 함께 올려주시겠어요?
@adlanyou searched in the wrong file, the log entry will be in kernel.log can you also post here the output of ifconfig after the kext is loaded?
adlan, thanks:)
Once again
oos-iMac:Downloads oo$ sudo kextutil -v 4 BCM5722D.kext
Password:
Kext library architecture set to x86_64.
Kext library recording diagnostics for: validation authentication dependencies warnings.
BCM5722D.kext appears to be loadable (not including linkage for on-disk libraries).
Loading BCM5722D.kext.
Reading load info for all kexts.
Reading loaded kext info from kernel.
Adding /Users/oo/Downloads/BCM5722D.kext to mkext.
/Users/oo/Downloads/BCM5722D.kext added 79552-byte noncompressed executable to mkext.
Created mkext for architecture x86_64 containing 1 kexts.
Loading BCM5722D.kext.
(kernel) Received request from user space to load kext my.name.adlan.BCM5722D.
(kernel) Recorded kext my.name.adlan.BCM5722D as a candidate for inclusion in prelinked kernel.
(kernel) Loading kext my.name.adlan.BCM5722D.
(kernel) Allocated link buffer for kext my.name.adlan.BCM5722D at 0xffffff7f807a5000 (28672 bytes).
(kernel) Kext my.name.adlan.BCM5722D executable loaded; 7 pages at 0xffffff7f807a5000 (load tag 95).
(kernel) Kext my.name.adlan.BCM5722D calling module start function.
(kernel) Kext my.name.adlan.BCM5722D registered class my_name_adlan_BCM5722D.
(kernel) Kext my.name.adlan.BCM5722D has IOService subclass my_name_adlan_BCM5722D; enabling autounload.
(kernel) Kext my.name.adlan.BCM5722D is now started.
(kernel) Kext my.name.adlan.BCM5722D sending 1 personality to the IOCatalogue and starting matching.
(kernel) Kext my.name.adlan.BCM5722D loaded.
Successfully loaded BCM5722D.kext.
BCM5722D.kext successfully loaded (or already loaded).
And nothing found in kernel.log:
oos-iMac:Downloads oo$ grep BCM /var/log/kernel.log
oos-iMac:Downloads oo$ sudo ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
oos-iMac:Downloads oo$
I use bcm5706,and thanks for your driver,but IPv6 proxy.
I always need to use IPv6 proxy for connecting to internet.
However,I find the driver may has some problem of IPv6 proxy,
which is that the connection of IPv6 proxy becomes disconnected sooner or later.
I can figure out it is not cause by the proxy.
But I found a temper solution that ifconfig the en0 down and up.
@fyoooadlan, thanks:) Once again oos-iMac:Downloads oo$ sudo kextutil -v 4 BCM5722D.kext Password: Kext library architecture set to x86_64. Kext library recording diagnostics for: validation authentication dependencies warnings. BCM5722D.kext appears to be loadable (not including linkage for on-disk libraries). Loading BCM5722D.kext.…
Hi i was having the same trouble with BCM 5754 on dell optiplex 745. 10.6.7 retail install
lspci -nn result:
03:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM5754 Gigabit Ethernet PCI Express [14e4:167a] (rev 02)
I fixe this changing in info.plist of kext this line:
pci14e4,167A -> pci14e4,167a
Deep sleep working
it made some weeks i search, now both i386 and x86_64 working fine.
Fred
@FredWst안녕하세요, 저도 Dell Optiplex 745 (10.6.7 리테일 설치)의 내장 BCM5754에서 똑같이 로드되지 않는 문제를 겪었습니다. lspci -nn 결과는 03:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM5754 Gigabit Ethernet PCI Express [14e4:167a] (rev 02) 입니다. Kext 내부의 Info.plist 파일에서 pci14e4,167A -> pci14e4,167a 로 대문자를 소문자로 고쳤더니…
와, 정말 대단히 감사합니다!
도대체 왜 일부 카드에서 매칭이 안 되는지 전혀 갈피를 못 잡고 있었는데, 드디어 진범을 찾아내 주셨군요.
완전히 제 불찰입니다. 솔직히 말씀드리면 처음 봤을 때 대소문자 차이가 그런 문제를 일으킬 거라고는 상상도 못 했거든요..
.. 확인해 보니 실제로 그렇습니다. 방금 Apple의 XNU 커널 오픈소스 코드를 직접 뒤져서 Kext 로딩 및 매칭 과정의 함수 호출 흐름을 수동으로 추적해 보았습니다. 디바이스 매칭 과정에서 `IONameMatch` 배열 안의 문자열 값들은 C 표준 함수인 `strncmp`를 사용해 비교됩니다. 이 문자열 비교 함수는 대소문자를 엄격하게 구분(Case-sensitive)하기 때문에, IORegistry가 반환하는 소문자 `14e4,167a`와 plist에 적힌 대문자 `14e4,167A`를 비교하면 거짓(불일치)이 반환되어 드라이버 매칭 자체가 실패해 버리는 것이었습니다.
이 상태에서 수동으로 `kextload`를 치면 Kext 바이너리가 메모리에 올라가긴 하지만, 하드웨어 매칭 단계가 실패했기 때문에 드라이버 초기화 루틴(`start`)이 전혀 호출되지 않고 메모리에서 아무 일도 안 한 채 놀고 있었던 것입니다.
원인을 정확히 짚어주신 FredWst 님께 다시 한 번 백만 번 감사를 드립니다!
I've installed Lion on my optiplex 745.
BCM5722 is also working for my BCM 5754.
Fred
Ps: ATI 4350 is also working without green apple and qe/ci enable.
@VIVXIX저는 인터넷에 접속할 때 항상 IPv6 프록시를 사용해야 합니다. 그런데 이 드라이버가 IPv6 프록시 환경에서 약간의 문제가 있는 것 같습니다. 쓰다 보면 조만간 IPv6 프록시 연결이 끊어져 버리는데, 확인해 보니 프록시 서버 쪽 문제는 아닙니다. 임시방편으로 터미널에서 ifconfig en0 down 후 다시 up을 해주면 돌아오긴 합니다.
오, BCM5706에서도 작동하나요? 훌륭하네요! 다만 미지원 모델이라 약간의 부작용은 예상되는 바입니다.
시간이 날 때 해당 증상을 한 번 살펴보겠습니다. 사실 다른 모델들에 대한 지원 추가는 커뮤니티의 다른 개발자분들께서도 함께 기여해 주시기를 바라고 있습니다만, 아직 프로젝트 문서화가 워낙 부실하다 보니 큰 기대는 하지 않고 있습니다.
어쨌든 테스트해 주셔서 감사합니다!
@adlanit works on 5706 too? great! problem is expected, though. I'll look at it when I have time. However, I do hope others to contribute to add support for other model if possible. But, since project documentation is currently sparse, I'm not expecting any anyway, thank you for testing!
I am sorry, I make a mistake.It 's bcm5906.,not BCM5706.
:'(:'(:'(:'(:'(
@adlanI really have no idea what's causing that problem and now you found the culprit. my bad, I totally missed that and to be honest, at first look I wouldn't have thought that would cause a problem.. my observation, I may be wrong. .. and indeed it is. I've gone through the xnu source code and manually tracing function calls for the kext…
adlan&FredWst
It works!
The new version works well for BCM5906M in sl 10.6.7
@fyoooadlan&FredWst It works!
Thanks .I think the IPv6 proxy problem posted before just disappear.
The ifconfig en0 down and ifconfig en0 up commons dos't need anymore.
@FredWst제 Optiplex 745에 OS X Lion을 설치했는데, BCM5754에서 BCM5722D 드라이버가 그대로 완벽하게 작동합니다. Fred 드림. 추신: ATI 4350 그래픽 카드도 초록색 사과 깨짐 현상 없이 QE/CI 완벽 가속으로 잘 작동하네요.
멋지군요!
@VIVXIX죄송합니다, 제가 모델명을 잘못 적는 실수를 했네요. BCM5706이 아니라 BCM5906입니다. :'(:'(:'(:'(:'(
^_^ 괜찮습니다, 그럴 수 있죠!
@fyoooadlan & FredWst 님, 드디어 완벽하게 작동합니다!
@VIVXIX감사합니다. 이전에 말씀드렸던 IPv6 프록시 끊김 문제도 새 버전에서는 감쪽같이 사라진 것 같습니다. 이제 더 이상 ifconfig en0 down / ifconfig en0 up 명령어를 칠 필요가 없네요.
모두 잘 해결되었다니 정말 기쁩니다!
Broadcom NetXtreme 5761
Hi Adlan... thanks for your work on this, I've been suffering with hex-editing the original 5701 kext trying to get my card working (device ID 1681). I thought on the off-chance I'd try your kext and with an Info.plist addition it picked it up straight away - really impressed!
I just have to sort out the blank MAC address and give it some proper testing.
@cephalopodHi Adlan... thanks for your work on this, I've been suffering with hex-editing the original 5701 kext trying to get my card working (device ID 1681). I thought on the off-chance I'd try your kext and with an Info.plist addition it picked it up straight away - really impressed! I just have to sort out the blank MAC address and give it…
Oddly, on reboot with a link the MAC address is identified but the speed isn't negotiated properly... on first attempt to do anything with the interface/driver it drops the connection permanently, preventing reconfiguration; only resuming use after another reboot. Any ideas Adlan please?
@cephalopod안녕하세요 Adlan 님... 노고에 깊이 감사드립니다. 그동안 제 랜카드(Device ID 1681, BCM5755M/5787 계열)를 살려보려고 순정 5701 Kext를 헥스 에디터로 수정하느라 엄청 고생했었습니다. 혹시나 하는 마음으로 이 Kext의 Info.plist에 제 ID를 추가해 보았더니 단번에 카드를 인식하네요 — 정말 감탄했습니다! 이제 MAC 주소가 비어 있는 문제만 해결하면…
@cephalopod이상하게도 랜선을 꽂은 상태로 재부팅하면 MAC 주소는 제대로 인식되는데 링크 속도 협상(Negotiation)이 정상적으로 이루어지지 않습니다... 인터페이스나 드라이버를 통해 무언가 통신을 시도하는 순간 연결이 영구적으로 끊어져 버리고 재설정조차 불가능해져서, 다시 재부팅하기 전까지는 아예 복구가 안 됩니다. 혹시 원인이 무엇일지 조언 부탁드립니다, Adlan 님.
답변이 늦어 죄송합니다. 최근 며칠 동안 좀 바빴습니다.
방금 Linux(tg3)와 FreeBSD(if_bge) 드라이버 소스를 확인해 보니, 해당 디바이스 ID(1681) 모델의 경우 몇 가지 별도의 하드웨어 버그 픽스와 추가 초기화 단계, 그리고 상이한 레지스터 설정값이 들어가 있는 것으로 보입니다. 아마 그 차이 때문인 듯한데, 해당 처리 루틴을 코드에 반영해서 이번 주말에 테스트용 Kext를 보내드리겠습니다.
테스트해 주셔서 감사합니다!
work flawlesly with 5754 on Dell optiplex 745
thank's adlan, you rock..
thank god to show me the page 7 & 8 now time to work with GMA3000, hope work soon.
many thank's adlan.
@scritchyI have device 14e4:167b Broadcomm 5755 onboard nic on an hp xw6600 machine. The kext appears to fail to do anything at all. There is no mention of it in any of the logs in var/log i've tried deleting and reinstalling the kext with both kext helper b7 and kext wizard, and rebuilding kext cache. I've tried using the zip file attachee to…
Try this one, it works for my HP xw4400 works with the onboard broadcom 167b. I've tried it with 10.6.2 - 10.6.7
Dell Optiplex 330
Thanks for your driver. Able to install and detect BCM5787 but DHCP wasn't able to grab a valid IP keep geting 169.x.x.x. Even static IP i was not able to connect to Internet.
Any idea what went wrong?
@adlansorry for the lateness, been quite busy for the last few days. anyway I checked the linux and *bsd driver, it seems that, there are some fixes/additional initialization steps/different register value for that model. maybe it has something to do with that, I'll try to include those changes and send you the kext to test this weekend.…
Thanks adlan... appreciate life is hectic - keen to test when you're ready.
Thanks for all the hard work on this one ceph.
Successful install with a BCM5755M on a Dell Precision M4300.
I've got one more thing to test for those, who have problem with loading the kext. I've been recently helping with os x installation on lenovo y530 (or sth like that) and installing the kext was not enough to make BCM5906M ethernet card work. Adding Device (LAN) in DSDT solved the problem (there was no ethernet device at all) and ethernet works fine.
BCM57781 - 14e4:16b1
tried it on Lion with a BCM57781 (14e4:16b1).
Changed the info.plist - driver loads - ifconfig shows en0, link speed is fine, but no packets are sent or received.
Any idea?
Thanks,
Christian
Onboard Broadcom® 5754 Gigabit Ethernet LAN solution 10/100/1000 Ethernet (Dell Optiplex 745 desktop PC) works fine (as of now) on H@ckint0sh OS X Lion 10.7 with your BCM5722D.kext.zip
ethernet:
Type: Ethernet Controller
Bus: PCI
Vendor ID: 0x14e4
Device ID: 0x167a
Subsystem Vendor ID: 0x1028
Subsystem ID: 0x01da
Revision ID: 0x0002
Link Width: x1
BSD name: en1
Kext name: BCM5722D.kext
Location: /System/Library/Extensions/BCM5722D.kext
Version: 1
Indeed the problem with your earlier revision lied in the upper case alphabetical characters in device ID string. They needed to be lower case.
Thanks a million times for your time and effort.
Hey, we used Xcode to compile the kext again using your latest sources. The best we can get now is 100BaseTX Full-Duplex. Using the kext from May it loaded up as half duplex 100BaseTX. It does seem to drop out the connection after a few hours and requires the kext to be unloaded and reloaded. This is on a Dell poweredge T110.
Any ideas on getting 1000BaseT Full duplex working?
I tried forcing the setting but it will either show cable unplugged or it does a self assigned IP and manually setting it does nothing. Now on a side note it doesn't need the MAC address manually set anymore, it is able to pick it up from the hardware.
Another side note... Do you know of any working pci-e GigE LAN cards that will work in osx? As work will buy the card that will work for the machine.
BCM57781 - 14e4,16b1
after having no solution for my onboard nic i decided to give it a try and changed/added my device id to info.plist, like some other here as well .
The result is as follow:
en1: flags=8822<BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:25:22:bc:b8:9b
media: <unknown type>
Do you think there is any chance to get this working somehow?
Any help is much appreciated. Many thanks
M
BCM57781 - 14e4,16b1
after some more testing I now get following:
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:25:22:bc:b8:9b
inet6 fe80::225:22ff:febc:b89b%en1 prefixlen 64 scopeid 0x5
inet 169.254.217.110 netmask 0xffff0000 broadcast 169.254.255.255
media: autoselect (1000baseT <half-duplex>)
status: active
of course...it still doesn't work. but why is it different now?
M
Works for Dell Gx745 with BCOM 5754
Thank you! Works on my Dell Gx745 SFF with a BCOM 5754
Vendor Id: 0x14e4
Device Id: 0x167a
Subsystem Vendor Id: 0x1028
Revision Id: 0x0002
Link Width: x1
DELL Optiplex GX620 - BCM5751, Device ID 0x1677
I inserted the 1677 to the kext plist. The driver loads, assigns the correct MAC address, but does not transmit and recieve.
Is there anything else I should do?
Adlan,
Would it be possible to add support for BCM5723? I added the device id (165b) to plist. The kext gets loaded, but when I try to use it I get
serviceRxInterrupt:1036): replaceOrCopyPacket returns 0
and a bunch of messages like
outputPacket:568: 1514 -> 2 segments, 1 free, consumer index: 59
OS X 10.6.8 and Broadcom 5754 (14e4-167a) working 100%
Congratulations! Great job!
Works perfect!
Off topic: I am using a DELL 390 (with this nic and a Quadro NVS 285 do you happen to have any info/link for Quadro NVS 285? It's all I need for a smoothly running hackintosh with DELL 390 and OS X 10.6.8 (upgraded from iATKOS S3 v2 using 10.6.8 Combo Update 1.1)
Latest KEXT
I am very interested in getting the latest kext of BCM5722D, but I have no idea, how compile or make your GIT repository code, you can give me a hand?
thanks for that wonderful work
my lan detected,, but no internet connection or cannot ping to another pc on net,,
i am add in Info.plist
--------
<string>pci14e4.16b5</string>
---------
it's detect my lan,, but cannot get connection,,
I've tried this on my Acer Aspire 2920.
It works!
After 2 weeks I was looking for suitable driver, now works!
Thank you. I love you!
Sleep not working?
Only unload&load kext after sleep to get it work again?
Broadcom Netlink (TM) Gigabit Ethernet / Lion 10.7.2
Driver works on
- Packard Bell LJ65
- Broadcom Netlink (TM) Gigabit Ethernet
- BCM5784M
Lion 10.7.2
- Iatkos L2
Thanks
Dell Precision 390 owner! Happy as can be. Your kext is the only one that works 100%! Thank you x 1000000
I confirm my Ethernet Broadcom 5784M on on my Acer Aspire 5738G Dual core is working as well!
- Broadcom Netlink (TM) Gigabit Ethernet
- BCM5784M
Lion 10.7.2
- Iatkos L2
I'm happy! Great job, man! Thanks! ) )
Gigabit Speeds
Is there any progress on getting this Kext to operate at gigabit speeds... the best I can get is 100baseTX.
It was my cable... the driver works fine at gigabit.
ing great.
Before I say something to you,
did someone say that you are damn good developer who
developer these drivers.. If no one haven't done that then I would
love to say that you ARE ----IING good… Please excuse my language.
This damn thing took me 4 days to find these drivers and after doing
what you have said in this thread, it worked like a CHARM…
I do appreciate from the bottom of my heart that you developed and shared
this with other users. I mean it.
Though I am also a software developer and mostly develop applications
in Microsoft technologies i.e. .Net etc and was keen to start
some software development for iPhone, I just couldn't get the drivers of this damn
LAN.
You are a saviour, once again thank you very much for developing and
sharing this with us… THanks.
Thx adlan,
works great on my lenovo S20 at works
@adlanDisclaimer This driver is neither supported nor endorsed by Broadcom. Zombies may invade your house and I take no responsibility for whatever happens. Use at your own risk
lol, don't worry i've got some plants for these Zombies
Thanks adlan for the great driver.
I get stuck with Broadcom BCM5786 [14e4:169a]
I am not sure what should be edited in your source code, could you please show me how to do it ?
Thank.
Updated:
Luckily, I added [14e4:169a] definition to plist, recompile and install IONetworkingFamily.kext of my friend, and now everything works like charm.
Just want to say thank, adlan, love you!
Your driver work for my Ethernet card, the Broadcom 5752, which on the old guy DELL 490 with some minor fix.
I did 2 minor fix on your kext to support Broadcom 5752:
1. infor.plist. I replace <string>pci14e4,167A</string> with <string>pci14e4,1600</string>
2. BCM5722D. I hex this file, looking for "7A 16" then replace all with "00 16". (flip word anyway).
Finally, I put them inside IONetworking kext which replace the original one. Reinstall this kext. Re-build cache. Re boot. Viola!
No kernal panic, MAC address just there, DHCP ok, even though I haven't plug in network yet.
Which OS I run huh? iAtKos L2 (Lion 10.7.2).
Thank you so much, adlan.
Work like charm for acer aspire 2920. The next i have been looking for..
Thanks a lot for you work on making this driver.
I need a working Kext for the desktop version of this network card: Broadcom BCM5784. (Without the M)
Is there any way to modify this kext for it to work on the non-M version?
I'm on OSX 10.6.8. (AMD)
@chefk0kThanks a lot for you work on making this driver. I need a working Kext for the desktop version of this network card: Broadcom BCM5784. (Without the M) Is there any way to modify this kext for it to work on the non-M version? I'm on OSX 10.6.8. (AMD)
Modifying the .plist is your best bet
Hardware:
Dell PowerEdge T110
2.39 Quad Core Intel Xeon
4GB 1333 DDR3
Nvidia GeForce 7300GT
OS: OS X Lion 10.7
I have a Broadcom Nextreme Gigabit network controller and i tried putting in the BCM5722D.kext using Kextdrop but the internet will not work. I look under the Network setting and none appear. Any suggestions. Thanks for your help. Any more information needed let me know.
Works for Dell Precision T5400 w/Broadcom 5754
Used kextWizard 3.7.10 and installed and rebooted in 1 min.
At first glance, worked perfectly. DHCP, mac address, until…
UPDATE: Networking stops working after awaking from sleep, as others have said. I didn't see that resolved in the thread...did I miss something?
OSX Lion 10.7.4
Dell Precision T5400
(2) Intel X5450 XEON Quad Core CPUs
4 GM RAM
Broadcom 5754
M-Audio Revolution 7.1 (work in progress)
nvidia Quadro FX 4600 (work in progress)
Thank you very much for your hard work in developing this driver!
I have a small problem though, I have a BCM5755 and everything works but the driver crashes after copying lots of data over the LAN (roughly 100GB or 60k packets). Unloading the driver and reloading does not fix it and I have to reboot to get networking back.
Any ideas why this is happening and anything I can try to get it fixed?
Lion 10.7.4
HP xw6600
BCM5755 onboard
Downloaded the source code and made some slight changes + added the BCM5784M 0x1698 device, compiled for ML ...
Still have 6 Semantic Issues and 5 Logic errors in the code but the compilation went fine. It works but after some intense usage, as symbiote187 pointed out, it stops working and the only solution is to reboot.
I am not a coder so ... but i really appreciate your involvement on this and i Thank You!
I have the same device and vendor ID for ethernet as this kext 14e4:1698. But will my ethernet work since my wireless card is unsupported (1510 AGN) ? I am trying to get my ethernet to work on a Dell Studio 1555 running on P8600 CPU and 512 MB ATI mobility 4570. Thanks for anyone's reply.
@ghostanime2001I have the same device and vendor ID for ethernet as this kext 14e4:1698. But will my ethernet work since my wireless card is unsupported (1510 AGN) ? I am trying to get my ethernet to work on a Dell Studio 1555 running on P8600 CPU and 512 MB ATI mobility 4570. Thanks for anyone's reply.
Try this one osx 86.net/downloads.php?do=file&id=3074 if you are using ML
출처 및 기여자 이력 (등록된 기여자 61명 · 원본 스레드 #6946)
| 사용자명 | 기여 역할 | 게시물 수 | 활동 기간 |
|---|---|---|---|
| @adlan | 주 저자 | 36 | 2011-02-12 → 2011-06-02 |
| @fyooo | 핵심 기여자 | 7 | 2011-05-17 → 2011-05-23 |
| @Astarael | 핵심 기여자 | 6 | 2011-04-06 → 2011-07-15 |
| @rals2007 | 핵심 기여자 | 4 | 2011-03-14 → 2011-05-19 |
| @ludacrisvp | 핵심 기여자 | 3 | 2011-05-03 → 2011-07-28 |
| @VIVXIX | 핵심 기여자 | 3 | 2011-05-21 → 2011-05-24 |
| @cephalopod | 핵심 기여자 | 3 | 2011-05-27 → 2011-06-22 |
| @quinielascom | 기여 멤버 | 2 | 2011-02-16 → 2011-03-20 |
| @Dabluest | 기여 멤버 | 2 | 2011-03-04 → 2011-03-07 |
| @abiogenesis | 기여 멤버 | 2 | 2011-03-13 → 2011-03-17 |
| @tmacyunn | 기여 멤버 | 2 | 2011-03-25 |
| @ronin510 | 기여 멤버 | 2 | 2011-04-19 → 2011-05-15 |
| @FredWst | 기여 멤버 | 2 | 2011-05-21 → 2011-05-22 |
| @majamudo | 기여 멤버 | 2 | 2011-08-09 |
| @waldrondigital | 기여 멤버 | 2 | 2011-11-29 → 2012-01-16 |
| @righteye | 기여 멤버 | 2 | 2012-08-05 → 2012-08-23 |
| @chinasky | 기여 멤버 | 1 | 2011-02-15 |
| @pat98usb | 기여 멤버 | 1 | 2011-02-16 |
| @limiter121 | 기여 멤버 | 1 | 2011-02-27 |
| @adminio | 기여 멤버 | 1 | 2011-03-01 |
| @webwolf | 기여 멤버 | 1 | 2011-03-05 |
| @Medienmensch | 기여 멤버 | 1 | 2011-03-18 |
| @volgin7 | 기여 멤버 | 1 | 2011-03-20 |
| @parlae | 기여 멤버 | 1 | 2011-03-20 |
| @Domenic211 | 기여 멤버 | 1 | 2011-04-15 |
| @scritchy | 기여 멤버 | 1 | 2011-04-18 |
| @michalskie | 기여 멤버 | 1 | 2011-04-25 |
| @derekj0571 | 기여 멤버 | 1 | 2011-04-30 |
| @anibalin | 기여 멤버 | 1 | 2011-05-07 |
| @toja | 기여 멤버 | 1 | 2011-05-20 |
| @ifumi | 기여 멤버 | 1 | 2011-06-04 |
| @tc2468 | 기여 멤버 | 1 | 2011-06-09 |
| @fiatitude | 기여 멤버 | 1 | 2011-06-17 |
| @jpt1105 | 기여 멤버 | 1 | 2011-06-17 |
| @zoso | 기여 멤버 | 1 | 2011-06-27 |
| @ce_infmac | 기여 멤버 | 1 | 2011-07-25 |
| @UserOSX | 기여 멤버 | 1 | 2011-07-28 |
| @analot | 기여 멤버 | 1 | 2011-07-28 |
| @PinInCalgary | 기여 멤버 | 1 | 2011-08-16 |
| @aaronson | 기여 멤버 | 1 | 2011-08-17 |
| @antikus | 기여 멤버 | 1 | 2011-08-21 |
| @m4f1050 | 기여 멤버 | 1 | 2011-08-25 |
| @reysillo | 기여 멤버 | 1 | 2011-09-12 |
| @niclo43 | 기여 멤버 | 1 | 2011-09-23 |
| @danybr | 기여 멤버 | 1 | 2011-10-09 |
| @jahsmurf | 기여 멤버 | 1 | 2011-10-17 |
| @onelife | 기여 멤버 | 1 | 2011-10-24 |
| @ocw-inf | 기여 멤버 | 1 | 2011-11-23 |
| @nveronesi | 기여 멤버 | 1 | 2012-01-13 |
| @privateprotected | 기여 멤버 | 1 | 2012-01-22 |
| @cparm | 기여 멤버 | 1 | 2012-01-26 |
| @h224nh | 기여 멤버 | 1 | 2012-02-25 |
| @silicman | 기여 멤버 | 1 | 2012-03-11 |
| @mikegoh | 기여 멤버 | 1 | 2012-03-29 |
| @chefk0k | 기여 멤버 | 1 | 2012-04-07 |
| @Unrealized | 기여 멤버 | 1 | 2012-04-13 |
| @squinn66 | 기여 멤버 | 1 | 2012-05-15 |
| @lilcheshirecat | 기여 멤버 | 1 | 2012-05-21 |
| @lilbiscuit | 기여 멤버 | 1 | 2012-06-04 |
| @symbiote187 | 기여 멤버 | 1 | 2012-07-15 |
| @ghostanime2001 | 기여 멤버 | 1 | 2012-08-21 |