본문 바로가기

IT Story

Linksys LN1301 (MX4300) 순정펌 되돌리기 + 펌웨어 빌드 가이드

이전글: Linksys LN1301 (MX4300) 개봉 및 OpenWRT 설치 후기

 

Linksys LN1301 (MX4300) 개봉 및 OpenWRT 설치 후기

얼마전에 Woot에서 링크시스 LN1301 (MX4300) 제품을 15달러에 풀었습니다. 듣자하니 기업용으로 나온게 악성재고가 되어 가정용 펌웨어로 올리고 덤핑하는 제품이라고 하네요.스펙 자체는 MX4200에,

thskan176.tistory.com

 

 

시작전에 앞서,

링크시스 LN1301 (MX4300) 공유기는 듀얼부팅을 지원합니다.

 

ssh root@192.168.1.1

 

ssh로 접속후, 아래 커맨드를 입력해 현재 부팅 파티션을 확인할 수 있습니다.

 

fw_printenv -n boot_part

 

 

파티션 1과 2가 존재합니다.

혹시나 펌웨어를 잘못 밀어서 파티션 2를 날렸다던가 하는 경우 1로 부팅이 가능합니다.

 

공유기를 킬때, 부팅 과정에서 인터럽트를 3번 발생시키면 다른 파티션이 선택되어 부팅이 됩니다.

그러므로, 껐다 켰다 3번 반복해서, 부팅을 3번 시도했는데 실패했다는 상황을 만들어주면 되는거죠.

 

이외에도 fw_setenv나 luci 패키지를 통해서 듀얼부팅 느낌으로 쓰는 방법도 있습니다.

OpenWRT가 설치되어 있는 상태에서 이러한 방식을 통해 순정펌 쓸 수도 있고, 다시 WRT로 돌아올 수 있습니다.


 

OpenWRT 펌웨어를 업데이트하거나, 설정이 꼬여서 등등

순정펌으로 반드시 되돌아갈 일이 생길 수 있습니다.

 

ssh 접속 후, 다음과 같이 따라해줍니다.

 

cd /tmp
wget https://downloads.linksys.com/support/assets/firmware/FW_MX4300_1.0.4.215382_prod.img

 

(링크시스 펌웨어 링크가 사라질 경우, scp를 통해 직접 옮기거나 개인 서버에서 wget을 거는 등 다양한 방법으로 펌웨어를 가져와주시면 됩니다)

 

 

해당 펌웨어가 잘 다운로드가 되었는지 확인해줍니다.

 

ls -al

 

 

 

그리고, 이 펌웨어를 플래싱 해 줍니다.

 

mtd -e alt_kernel -n write FW_MX4300_1.0.4.215382_prod.img alt_kernel

(파티션 2에 설치할 경우 alt_kernel, 파티션 1일 경우 kernel로 작업)

 

 

 

이러고 나서 아래 스위치를 딸깍해서 재부팅을 하면 순정펌으로 돌아오는걸 확인할 수 있습니다.

 


 

저처럼 삽질하는 사람이 생기지 않았으면 좋겠어서, 펌웨어 빌드 과정을 좀 정리를 해 봤습니다.

 

https://github.com/qosmio/openwrt-ipq 레포의 qualcommax-6.x-nss-mx4300-6.11 브랜치를 사용했습니다.

추후 업데이트되면 해당 줄만 바꿔서 적용하면 되겠습니다. 

git clone https://github.com/qosmio/openwrt-ipq -b qualcommax-6.x-nss-mx4300-6.11
cd openwrt-ipq

./scripts/feeds update
./scripts/feeds install -a

cp nss-setup/config-nss.seed .config

nano .config

(nano 편집기가 뜨면, 아래 라인 하나를 추가 또는 편집하여 저장)
CONFIG_TARGET_qualcommax_ipq807x_DEVICE_linksys_mx4300=y

make defconfig V=s
make -j$(nproc) V=s

 

 

WSL (Windows Subsystem for Linux) 환경에서, OpenWRT 펌웨어를 빌드하다가 에러가 날 경우입니다.

 

find: The relative path 'Files/WindowsApps/MicrosoftCorporationII.WindowsSubsystemForLinux_2.2.4.0_x64__8wekyb3d8bbwe' is included in the PATH environment variable, which is insecure in combination with the -execdir action of find.  Please remove that entry from $PATH
make[2]: *** [package/Makefile:102: package/install] Error 1
make[2]: Leaving directory '/home/test/openwrt-ipq'
make[1]: *** [package/Makefile:172: /home/test/openwrt-ipq/staging_dir/target-aarch64_cortex-a53_musl/stamp/.package_install] Error 2
make[1]: Leaving directory '/home/test/openwrt-ipq'
make: *** [/home/test/openwrt-ipq/include/toplevel.mk:248: world] Error 2

 

윈도우 PATH가 WSL에 들어가서 생기는 일입니다.

echo $PATH를 입력했을 때, 윈도우 환경변수가 쭉 나온다면 이걸 비활성화시켜야 합니다.

 

해당 내용은 https://gist.github.com/ilbunilcho/4280bd55a10cefef75e74986b6bff936 이를 참고했습니다.

 

sudo vi /etc/wsl.conf

(아래 두 라인을 추가해주고 종료해줍니다.)

[interop]
appendWindowsPath = false

 

이후 wsl을 종료해주고 다시 실행하면 되는데, 명령프롬프트에서

wsl --shutdown

 

을 입력하여 WSL을 종료할 수 있습니다.

 

이후  echo $PATH를 입력할 경우, 윈도우 PATH가 WSL에서 나오지 않고, 빌드도 정상적으로 됨을 확인할 수 있습니다.