Onion Omega에서 FreeBSD

우연히 굴러 왔다 Onion Omega 를 지금 다시 FreeBSD로 사용할 수 있도록 해 보았습니다. Omega는 mips인 Atheros에 비해 새로운 AR9330이라는 SOC를 사용하고 있어 RAM 64M/Flash 16M이므로 내 타겟 중에서는 상당히 풍부한 분입니다. 세상적으로는 Omega2가 사용되어 처음이며, 일주 지연으로 자신다운 묘하게 납득하기도 합니다.



AR9330은 AR9331과 같은 것으로 AP121이라고 불리는 것이 아닐까 생각됩니다.



내 작업은 Mac이므로 도터 보드에 대한 UART USB 장치 변환 SiLabs 칩 드라이버를 사용하여 직렬 콘솔에 액세스합니다.

여기에 freebsd-wifi-build에서의 빌드 방법이 있으므로, 이것을 참고로 ZRouter로 빌드할 수 있도록 해 보았습니다.

위의 빌드 스크립트를 보면 TP Link 유형의 이미지를 만들어야 mktplinkfw 명령을 사용하는 것 같습니다. 이 이미지는 U-Boot 라고 말하면서 다른 것이 되어 버리는 것 같습니다. ZRouter에도 mktplinkfw 커멘드는 들어 있었지만, 낡은 것과 같기 때문에, freebsd-wifi-build로부터 소스를 카피해 빌드할 수 있도록 해 보았습니다.

mktplinkfw는 share/mk/converters/가 아니라 Makefile에 직접 쓰고 있었기 때문에, 조정해 우선 빌드할 수 있게 되었습니다만 lzma error가 일어나 기동할 수 없습니다. 여러가지 시험해 재기동한 후에는 error가 일어나지 않기 때문에, 시험할 때는 항상 재기동하도록(듯이) 했습니다.

그런데 OK가 나옵니다만, 거기에서 진행되지 않습니다. 잘 살펴보면 AR933x는 다른 AR7/9계와는 다른 uart의 코드가 준비되어 있어 이것을 사용할 필요가 있었습니다. Atheros의 SOC로 100개의 Switch를 내장하고 있는 칩은 AR724x -> AR933x -> AR934x가 되고 있습니다만, 왜 AR933x만 별개가 되어 버렸습니까? . .

최초의 로그가 나올 때까지의 디버그는 아무것도 보이지 않는 가운데 CPU가 어떻게 되어 있는지 상상하고 있는 디버그로, 무의 세계에서 선의 수행하고 있는 기분이 됩니다.

이제 마침내 부트 로그가 나왔습니다. 조금 전에 AR9340도 괴롭히고 있었으므로, 간단하게 할 수 있을까 생각하면, 하루 가까이 걸려 버렸습니다.

실제 이미지를 구우려면 위의 페이지를 처리하기 위해 erase를 실행해야했습니다.

후에는 hints를 sys/mips/conf를 참고로 조정해 보았습니다.

이 SOC에서는 이더넷 인터페이스의 두 arge가 있지만 0이 Switch의 PHY4에 연결되어 밖으로 나옵니다.

USB도 정상적으로 인식됩니다.

GPIO도 많이 있으므로 Bitbang에서 I2C와 SPI도 사용할 수 있습니다.

objcopy가 binutil에서 elftoolchain으로 바뀌고 나서 재미있다. 그래서 오래된 바이너리를 발굴하고 사용하고 있습니다. 2018/01로 고쳤습니다.

물론 기술적이지 않기 때문에 WIFI는 확인하고 있지 않습니다. :)

우선 mruby를 넣어 이미지를 만들어 보았습니다. RAM도 Flash 크기 때문에, 여러가지 할 것 같습니다.

커널 시작만
setenv ipaddr 10.10.10.102;setenv serverip 10.10.10.3
tftpboot 0x80600000 Onion_Omega.bin
bootm

굽기
setenv ipaddr 10.10.10.102;setenv serverip 10.10.10.3
tftpboot 0x80020000 Onion_Omega.bin
erase 0x9f020000 0x9f7fffff
cp.b 0x80020000 0x9f020000 $filesize

u-boot의 환경 변수를 저장할 수 없기 때문에 매번 입력이 필요하고 조금 불편합니다.

이 부팅은 압축되어 있으며 128K로 작습니다. 16M의 Flash가 붙어 있는데 조금 신기한 생각도 합니다. 추가: 이 부팅은 u-boot_mod에서 파생되었으며 이 프로젝트가 작게 만드는 정책이었던 것 같습니다.

우선 절반만 지우고 있습니다. 이미지가 커지면 0x9fff0000까지 펼쳐집니다.

좋은 웹페이지 즐겨찾기