디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[스압] KT 무선 공유기 커스텀 펌웨어 개발기

manatails갤로그로 이동합니다. 2018.01.22 09:50:11
조회 147714 추천 1,179 댓글 765


- [스압] KT 무선 공유기 커스텀 펌웨어 개발기 - 1

안녕하세요. manatails입니다.



이번에 아는 사람에게서 남는 KT 공유기를 받았습니다.


딱히 쓸데는 없고 해서 분해해 보았는데, 생각보다 사양이 좋습니다.

이 기기가 그냥 통신사 공유기로 남는것은 아깝다고 생각하여 한번 해킹을 시도해 보았습니다.



모델명은 DW02-412H 으로 기가인터넷 가입 시 같이 주는 공유기인것 같네요.



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a2fdadeeb4a805f65f486a7f


외형은 별 볼일 없는 평범한 공유기입니다.





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304feacaeeab3ac50a05f52747f

공유기의 주소로 로그인을 해 보면 재미없는 kt 인터페이스가 우리를 반깁니다.





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c66798945ef3952caf27e5eeb3189c4b10ef8b8748bf22252ca33af6074e16


할 수 있는것도 거의 없습니다.



이제 이 공유기에게 새로운 힘을 줘 봅시다.



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f3aefdece4fc00f75f486a7f


우선 뒷면을 봅시다.



딱 봐도 고무 밑에 나사가 있게 생겼군요


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f6aaf2e9b1a903f65f486a7f


고무패킹을 떼고 나사를 풀어줍니다.





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a4f7f2b8b1f850a55f486a7f


뚜껑을 여니 기판이 보이네요.




QCA9557 칩셋과 ESMT사의 1기가비트(128메가바이트) 메모리 모듈이 눈에 띕니다.


해당 칩셋은 720Mhz의 MIPS기반 CPU를 사용합니다.




720Mhz CPU에 128MB 램, 128MB 낸드면 공유기로 살기에는 좀 아깝죠.


저가형 iptime 공유기들은 32메가 램에 8메가 낸드 장착 이런것도 흔합니다.



가장자리에 수상한 핀들이 보이네요.


보통 이런 핀들이 직렬 연결을 위해 쓰입니다.


전압을 측정하여 각각의 핀이 무슨 핀인지 알아봅니다.





어려운거 할필요 없이 전압계 하나면 충분합니다...


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f3ffadb8b2a350a15f486a7f


가장 아래 핀은 3.3v 나오네요. VCC입니다.




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f1adfdecb4f903a75f486a7f


바로 위에 핀은 부팅시 전압이 계속 바뀌는걸 보니 TX인듯 합니다.


맨끝에 핀은 0볼트 나오니 GND이고 중간에 끼인것이 RX이겠죠




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a0fcfcecb6af04a55f486a7f


정리되었으니 USB 직렬 컨트롤러를 이용하여 컴퓨터와 연결합니다.




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304feabf2e9b6a356f55f52747f


PuTTY를 쓰니 연결이 되긴 된것 같은데.. baudrate가 틀린지 글자가 깨집니다.



주로쓰는 baudrate인 57600, 115200 등을 적용해서 확인합니다.




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f4f8f8e8b5ac57a05f52747f


115200이였네요


이제 부트로더와 콘솔에 접근할 수 있습니다.


uboot를 사용하고 Atheros 사의 ap135 SoC 기반인 것을 알 수 있습니다.




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a3aef3bcbda303f25f52747f


부팅이 완료되니 콘솔로 로그인이 가능하네요. 하지만 알려진 비밀번호를 다 대입해봐도 로그인이 되지는 않습니다.



우선 다른 작업에 들어가기 전에 펌웨어를 덤프합니다.




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304fffda8bcb5a350a45f52747f


일단 bootinfo 명령어가 있으니 시스템 이미지의 정보는 알 수 있습니다.



낸드에 저장된 주소, 사이즈까지 다 알려주니 작업하기 좋네요





그런데 nand의 정보를 컴퓨터로 마땅히 가져올 방법이 없네요. 부트로더가 tftp 업로드를 지원하지 않습니다.



어쩔수없이 nand의 정보를 터미널에 출력한 다음 수동으로 헥사 파일로 변환해야겠습니다.




리눅스를 사용할 때가 왔군요.



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f6acf2eab6a854a05f52747f


다행히 md 명령어가 있어 시리얼 콘솔로 낸드의 내용을 출력할 수가 있습니다.





이를 저장한다음 파이썬 스크립트를 사용하여 바이너리로 바꾸어 줍니다.


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a5aba8e8b7ac51f75f52747f





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f1faadbae4a251f75f52747f


이렇게 펌웨어 덤프가 완료되었습니다. 이제 공유기가 벽돌되기라도 하면 이 덤프 파일을 사용해서 원 상태로 복구하는것이 가능합니다.





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a0fbadbfe6aa03f75f52747f


binwalk 로 lzma 압축된 시스템 파일을 확인합니다.



0x44 까지는 헤더부분인것 같네요




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f1aeafbbe3f957ad5f52747f


헤더부분을 제거하고 LZMA 압축을 푼 후에 다시 바이너리를 확인합니다.



커널과 루트 파일시스템이 보이기 시작하네요



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a7f6f9b8e1fc59f65f52747f


Unsquashfs를 사용하여 파일시스템을 봅니다...만 파일을 읽을수가 없다네요?



아마 비표준 squashfs를 사용하는 듯 합니다.



그래도 다행히 이런 임베디드 제조사들이 쓰는 비표준 squashfs 규격을 모아놓은 sasquatch가 있습니다.





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a2fafde6e3f954a55f52747f


이제 파일시스템의 내용도 다 볼 수 있습니다.



하지만 여기에 시스템의 암호는 없네요. 메모리 어딘가에 감추어져 있는 모양입니다.




--계속--



- [스압] KT 무선 공유기 커스텀 펌웨어 개발기 - 2


공유기를 싱글유저 모드로 부팅해봅시다.


먼저 부팅 이미지를 메모리에 로드 한 뒤 setenv로 커널 파라미터를 수정하고 부팅하면 됩니다.


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a2aaaeedb3aa50a35f52747f


rc를 진행하여 시스템을 마저 준비시키면 passwd 파일을 열 수 있습니다.



섀도 형식으로 되어있네요




섀도 파일의 형식은 $Hashid $Salt $Hash value 로 되어있는데



위 파일의 해쉬 형식은 다음 표와 같군요


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f2abf3e6e3fc59f65f486a7f


MD5-crypt 를 사용하여 솔트 없이 암호화되었으므로 어렵지 않게 비밀번호를 알아낼 수 있습니다.





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a7aea9e6b1f956a65f52747f



올레 공유기의 관리자 비밀번호는 tandi였습니다.




올레 개발자가 이 글을 보고 있다면 화들짝 놀라면서 보안 업데이트를 준비하겠죠





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a5fbf9b8b1aa52f55f52747f



관리자 로그인 성공!


슬슬 여기에 설치할 새로운 펌웨어를 준비해 볼 시간입니다.






viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f4aea8edb5fc53f05f52747f


OpenWRT는 공유기 등에 설치를 위한 리눅스 배포판의 일종입니다.




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a7a9fde8b4f959a55f52747f


필요한 모듈들도 다 준비하고




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f4f9fceeb4fc59f25f52747f



배포판에서 기본 환경 설정을 가져옵니다.




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f4adaae8e6fc54f65f52747f


보드 설정을 들어갑니다.



이 공유기의 기반이 되는 AP135 레퍼런스 보드를 위한 프리셋이 있긴 하네요



선택해줍니다.



이후에 알아낸 일이긴 하지만 AP136-010에 내장 스위치 관련 커널 설정이 들어가있어서 그걸 사용하는게 더 지름길입니다.





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f5abf2e7e1ac05f15f52747f


이것저것 컴파일을 거쳐





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f7f6fabdbda905f75f52747f


드디어 완료되었군요




부트로더의 tftpboot을 이용해서 새로운 펌웨어를 올려 봅시다.



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f0f7feede6aa56f15f52747f



부트로더에서 tftp 접속 주소를 알 수 있으 니 부트로더의 환경변수를 보고 그에 맞게 서버를 열면 됩니다.





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f1adadbbe1aa57f25f52747f


그리고 tftp로 펌웨어를 메모리에 올리고 부팅을 시도했는데 체크섬 문제로 실패했네요




그러고보니 올레 펌웨어의 데이터 부분이 0x44부터 시작했었죠.



원래 uboot의 헤더 크기는 0x40일텐데...?





uboot의 소스코드를 확인해 보았습니다.



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f0aafce8e1fb56ac5f52747f




펌웨어 파일의 형식도 확인합니다.


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a0faafeeb7a253a55f52747f


그림으로 대충 이렇게 나타낼 수 있겠네요




그리고 올레 펌웨어의 헤더부분을 봅시다.


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f4faf2ede3ad04a25f52747f


중간에 00 02 04 00 이란 이상한 값이 헤더에 포함되어있네요. 중요한 값 같지는 않고 매직넘버의 연장같네요.





그래서 원래 헤더를 추출하여 해당 값을 더한 후 다시 다시 CRC를 계산하여 새로운 헤더를 만들어주는 스크립트를 만들어 보았습니다.


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a0a9fdeab7a804a75f52747f



대충 쉘스크립트를 짜고







viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f1acfdebe6fb07a15f52747f


파일에 헤더를 새로쓰는 처리를 하고




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a4aaa9e6b5f857a55f52747f


커널로 부팅하는데 성공했습니다.





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f7abfebce3fe51f25f52747f


하지만 이내 불만을 토로하는군요.



SPI로 작동하는 NOR 플래쉬 메모리를 인식하지 못합니다.




--계속--




- [스압] KT 무선 공유기 커스텀 펌웨어 개발기 - 3 (끝)



기판을 들여다봅시다.


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c66798945ef3952caf27e5eeb3189c4b10ef8bde4fe9762e78ae3af61d004f


ESMT 사의 F25L16PA라는 NOR 메모리를 사용중이네요






viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c66798945ef3952caf27e5eeb3189c4b10ef8bd21abb242f7eab3af6073e93



데이터시트를 참조하여





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a7aefaefe7ac52ac5f52747f


커널 NOR 플래쉬 드라이버에 해당 칩셋이 인식될수 있게 칩ID, 섹터크기와 정보를 입력해줍니다.





무선 관련 설정 등이 저장되는 ART영역이 NOR플래쉬에 탑재되어있기 때문에 해당 작업이 필요합니다.





viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a7fbafbcb0aa05f25f52747f


우선 부팅에 성공했습니다. 지금은 initramfs 이미지를 사용하였기 때문에 NAND 플래쉬는 사용하지 않습니다.





NAND도 일단 ECC오류를 발생하는 것을 보아 커널 수정이 필요해 보입니다.



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304feacfce6e7fc00f25f52747f



우선 이미지에서 기본 무선 설정을 활성화시킵니다.




일단 무선 연결로 설정창은 잘 뜨나 유선 연결이 되지 않네요.


아마 스위치 설정이 잘못된것 같습니다.


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c66798945ef3952caf27e5eeb3189c4b10ef8bd34cec74717cad69f61d6bec


스위치 칩셋은 QCA8337(AR8337)칩셋을 사용중이며 위 사진과 같이 포트가 구성되어 있습니다.





저는 VLAN tagging을 사용하여 LAN과 WAN 포트를 분리했습니다.


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f7f9fdbfb7a903f25f52747f



그림으로 나타내면 이쯤 되겠네요.



스위치에서 tagging을 이용하여 WAN 과 LAN 포트를 CPU 포트에 연결합니다.





WAN은 eth0.2 LAN은 eth0.1으로 사용하게 됩니다.



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304feadfdebbcaf59f05f52747f


위에서 구상한대로 새로 스위치 설정 스크립트를 맞춰줍니다.






viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304ffabaae6b2a850ac5f52747f


유선 인터넷 연결도 성공하였습니다.




이제 다 된건가 생각했었는데... 생각해보니 와이파이가 2.4G만 잡히고 5G가 안잡히네요



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f0aef9eee6ad04f55f52747f



커널 로그를 보니 5Ghz 칩셋 드라이버인 ath10k_pci가 오류를 내고 있었습니다.



캘리브레이션 정보를 불러오기 실패했네요.



시작에서 잠시 언급했었지만, NOR 플래쉬에 저장되는 정보 중 하나가 이 5Ghz 칩셋의 캘리브레이션 데이터입니다.




viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f4f8aaedb6fc50f05f52747f



NOR 플래쉬의 ART 영역에서 데이터를 추출해서 적용해주는 코드를 추가해줍니다.



이제 대충 모든 기능은 다 활성화되었고, 배포 가능한 펌웨어를 만들기 위해서 NAND를 활성화시켜 봅시다.


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a5acaabcbcae57a35f52747f



순정상태에서는 ECC오류때문에 NAND읽기가 불가능합니다.



사실 이부분이 시간을 가장 많이 썼던 부분이긴 한데,  실패한 시도를 다 생략하니 결국은 몇 줄의 글로 요약되는게 슬프군요.



관련 메일링 리스트 정독하고 다른 공유기 소스참조 등 별 시도를 다 했지만 소용이 없었고...





커널의 NAND 드라이버가 자동으로 ECC를 활성화 해 주지 않던게 문제였습니다.


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a0fff9e9b4ff54a05f52747f


커널 수정으로 해결하였습니다.



자 이제 실제로 설치가 가능한 이미지를 만들기 위해 플래쉬 영역에 대한 구상을 해 봅시다.



기존의 플래쉬 사용은 다음과 같습니다.


viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f3f7f9ecb4fc54a65f52747f

환경설정은 NOR 플래쉬의 200kb 남짓한 공간에 저장되고



128MB의 NAND 플래쉬는 펌웨어와 백업펌웨어가 차지하는 18MB를 제외한 공간이 전부 빈 공간이였습니다.



이럴거면 128메가짜리를 왜 단건지도 잘 모르겠네요.



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a2fdfde9e4ff57f05f52747f

이제 새로운 이미지에서는 뒤에 여분의 공간을 하드디스크처럼 활용하여 프로그램을 설치할 수 있도록 하였습니다.





데이터영역의 포맷은 보통 NAND에서 많이 쓰는 squashfs+jffs2로 할려했으나 그렇게 할 시 96MB에서는 오버레이 마운트 시간이 오래걸려 단일 jffs2만 사용하기로 하였습니다.



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f0acfaefe0af50ad5f52747f



이제 깔끔하게 마운트가 되고 구성이 완료되었습니다.





설정이나 설치한 프로그램 등은 전부 NAND에 저장되게 됩니다.








viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c66798945ef3952caf27e5eeb3189c4b10ef8b821abc712578ad68f607ad8d


설정 인터페이스



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304a7aafaebb7aa54f25f52747f


토렌트 서버



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c66798945ef3952caf27e5eeb3189c4b10ef8bd01ced7e2129a83ef60755b4


PHP가 적용된 웹서버



이제 이 올레 공유기는 라즈베리 파이와 같은 사실상 작은 리눅스 컴퓨터라고 보시면 됩니다.


opkg를 이용해 원하는 프로그램을 설치할 수 있고 위의 사진과 같이 웹서버, FTP서버 혹은 토렌트 서버 등 활용성이 무궁무진합니다.


별볼일없던 공유기가 작은 서버가 된 것입니다.





iptime과 같은 국내 공유기들은 개발진들의 부재로 이런 커스텀 펌웨어가 거의 없는데, 앞으로 국내산 공유기에도 이런 개발들이 활발히 이루어지길 희망합니다.




장단점이 있긴 하지만 고사양 공유기들이 순정 펌웨어만으로 살아가는것은 자원의 낭비라고 생각합니다.






혹시 동일 모델의 올레 공유기를 가지고 있으신 분들을 위해서, 개인 블로그에 커펌 적용법을 올려 놓겠습니다. 관심있으신 분은 확인해보세요



viewimage.php?id=3dafd922e0c23b9960bac1e6&no=29bcc427bd8a77a16fb3dab004c86b6fc93372d8d41c9d0ae8a5bc1e8980b18c6ca2b9c667989418afce47ae2bebe8b6b304f2f8fbbfb0fc55a75f486a7f




매너티는 최고 존엄입니다.







출처: 컴퓨터 본체 갤러리 [원본보기]

추천 비추천

1,179

고정닉 362

32

원본 첨부파일 1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 경제관념 부족해서 돈 막 쓸 것 같은 스타는? 운영자 24/05/13 - -
17550 런던사진 몇장 [179] 오프더레코드갤로그로 이동합니다. 23.04.22 42404 219
17549 새벽에 심심하면 내 가방 제작기나 보든지 [303] 카나가와No.1호스트갤로그로 이동합니다. 23.04.21 41036 346
17548 (스압) 진격거 동상보러 일본 간 썰.manhwa [236] 코택이갤로그로 이동합니다. 23.04.21 38696 288
17547 스압) 쉐프가 만든 슈퍼 로열 피자 [306] 엠대디갤로그로 이동합니다. 23.04.20 61007 264
17546 진짜 날개가 빛나는 샤가르마가라 피규어 만들기 [274] profches001(114.206) 23.04.20 35023 466
17545 디붕이들 잘 지내제? 꽉채워서 좀 뿌리고 간다(고봉밥 주의) [111] 도식갤로그로 이동합니다. 23.04.19 28523 109
17544 평일 새벽에 몰래 올리는 소품제작(스압) - 투구도색 완성 [140] 해픠쏠갤로그로 이동합니다. 23.04.19 29082 278
17543 마음여린 뱀 만화 [스압] [312] 득7이갤로그로 이동합니다. 23.04.18 57613 579
17542 [스압] 순닭이 2탄 [517] 뇌먹는얼룩말갤로그로 이동합니다. 23.04.18 44642 1119
17541 블랙 jdm 4대장 커스텀 완성! [스압] [94] 추상갤로그로 이동합니다. 23.04.17 28509 134
17540 슈퍼커브와 함께한 무계획 제주도 여행(데이터주의) [129] 화렌화이트갤로그로 이동합니다. 23.04.17 24865 81
17539 [성지순례] 아스카 지방 역사기행 순례기 [155] 초핫갤로그로 이동합니다. 23.04.15 28937 130
17538 (장문)집에서 AK보드카를 만들어보자 [127] 주랑갤로그로 이동합니다. 23.04.14 36059 255
17537 파인애플 피자 구웠어요 [552] 흙사자레오갤로그로 이동합니다. 23.04.14 64803 757
17536 숏컷 톰보이가 아저씨랑 떡볶이 먹는.manhwa [스압] [175] 오십이갤로그로 이동합니다. 23.04.13 56383 117
17534 일본 사진 공모전에서 상탔다!!! [스압] [212] 똑딱해갤로그로 이동합니다. 23.04.12 46629 258
17533 생일날 오랜 염원이던 인천대교 조명 위 달을 담다 [126] 12b갤로그로 이동합니다. 23.04.12 25020 150
17531 모터로움직이는 스타워즈 AT-AT 완성함 [182] 샤전용갤로그로 이동합니다. 23.04.11 24730 325
17530 미니어쳐 세트 제작끝 [스압] [125] 송아라갤로그로 이동합니다. 23.04.10 21844 95
17529 원소술사 마지막화 [151] sgtHwang갤로그로 이동합니다. 23.04.10 30715 186
17528 (스압) 그묘일밤에 그림 모음 [1084] 유도탄갤로그로 이동합니다. 23.04.08 87729 1937
17527 움직이는 벚꽃과 새 (데이터주의) [93] ㅇUㅇ갤로그로 이동합니다. 23.04.07 22133 163
17526 전라도 폐건물 탐험 1일차 [487] 용찬갤로그로 이동합니다. 23.04.07 67735 437
17525 [퍼프] 여우 꼬리 만들어서 엉덩이에 달아봄 [556] 여우매니아갤로그로 이동합니다. 23.04.06 73523 248
17524 [스압] 폰카들고 후쿠오카가서 찍은 사진 올려봐요 [191] 쿠로미안좋아함갤로그로 이동합니다. 23.04.06 48988 151
17523 왁 만패전 보고왔습니다(애런저지 버거도 먹었습니다)[스압] [96] Manhattan갤로그로 이동합니다. 23.04.05 25219 69
17522 인공등반훈련 [109] 해파리갤로그로 이동합니다. 23.04.05 25714 65
17521 단편) 꿈에 그리는. [85] 김카붕갤로그로 이동합니다. 23.04.04 23280 224
17520 라이엇이랑 콜라보한 이야기 풀어봄. ( 온세상이 내 코스프레다~ ) [416] 레나천사갤로그로 이동합니다. 23.04.04 52970 914
17519 [파워창작대회] 버러진 인형을 파워로 커스텀 해보자 [스압] [250] 뀨잉쬭갤로그로 이동합니다. 23.04.03 37744 271
17518 소형차 타면 개꼴리는 manhwa [스압] [349] 포너그갤로그로 이동합니다. 23.04.03 89754 428
17517 야비군 가는 기념으로 짤털이 (고화질ㅎ) [225] Jayhan갤로그로 이동합니다. 23.04.01 52329 129
17516 탔다 [스압] [369] 산타싸이클로크로스갤로그로 이동합니다. 23.03.31 40985 469
17515 나의 클래식카(썩차)일대기. [215] ㅇㅇ갤로그로 이동합니다. 23.03.31 40095 209
17514 에스파 드로잉 [954] 광기의갈로갤로그로 이동합니다. 23.03.30 86069 1693
17513 조혈모세포 기증 후기 [419] kofgb갤로그로 이동합니다. 23.03.30 39758 866
17512 사진 찍다 죽을 수도 있다? 노르웨이 3대 트레킹(스압) [300] 미됸갤로그로 이동합니다. 23.03.29 49188 365
17511 냉각수 터진 코나 실시간 현황 [908] 나시고랭갤로그로 이동합니다. 23.03.29 82977 821
17510 Z7 기추기념 D750의 4년 [97] Nulbarich갤로그로 이동합니다. 23.03.28 17380 70
17509 나도 신감독님 덕분에 인생취미 생김 [252] 갓-클린갤로그로 이동합니다. 23.03.28 39797 472
17508 클래식 카 후기 [스압] [224] 욤야아빠갤로그로 이동합니다. 23.03.27 31267 141
17507 본격....뉴트로 K-그래블.... [176] 끌베이갤로그로 이동합니다. 23.03.27 21020 116
17506 [스포어] - 모드점개장, 요청작모음집 [349] 아포갤로그로 이동합니다. 23.03.25 31948 365
17505 베트남 출장 신입 퇴사후 재취업 최최종편(근황) [185] ㅇㅇ(1.240) 23.03.24 60161 271
17504 10295 포르쉐911 LED작업기 [90] 지금은오프라인갤로그로 이동합니다. 23.03.24 28842 123
17503 대만 알중여행 [스압] [87] DouglasMacArthur갤로그로 이동합니다. 23.03.23 25158 46
17501 통수친 디질뻔한 유.. 아니 고닉 무복했다. 결산한다 [261/1] 톰카레즈갤로그로 이동합니다. 23.03.23 32560 212
17500 내가 갖고있는 게임관련 물건들 ㅋㅋ [스압] [396] 럭키잭갤로그로 이동합니다. 23.03.22 41915 146
17499 스압) 원피스 페보릿 에피소드 [450] happykwak(211.107) 23.03.22 45447 568
17498 저잘쓰2. 남들이 패윜 보정 할때 [135] 닉언갤로그로 이동합니다. 23.03.21 19942 215
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2