Wondering if anyone has tried adding support for the Mikrotik SXTSQ 5ac, there is some people working on the wAP 60g which looks like it is also ipq40XX based. I didn't want to pollute that thread so I might try to get things working and update here.
Branch is here, still working on getting initramfs booting.
Ok, you have it booting up how ? Without opening?
I haven't opened it up yet, I've been trying to get it to work with netboot via tftp. It would probably be easier opening it up and getting console access though. I'm still not sure if there are any steps post build that need to be done to prepare the initramfs and need to read the other thread more thoroughly.
Ok, understood. Share to console out if you can
Sure thing, I haven't had much time to work on this recently but hopefully will have some more time soon to keep digging.
I've made a little more progress, but since I'm not opening it up it will take a little longer, let me share my setup in case anyone else wants to test.
For the dhcp server and booting I've been using the following script to run dhcpd
and tftpd
:
#!/bin/bash
sudo truncate -s 0 leases* || echo "no leases file"
sudo dhcpd -cf dhcpd.conf -lf $(pwd)/leases -pf $(pwd)/pid -tf $(pwd)/traces
sudo in.tftpd -L -vvvvv -s $(pwd)
I then tail the leases
file in another terminal/panel.
The dhcpd.conf
file is as follows:
authoritative;
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.13 192.168.1.99;
default-lease-time 600;
max-lease-time 7200;
}
host tik{
fixed-address 192.168.1.1;
hardware ethernet <REPLACE WITH MAC OF SXTSQ>;
#filename "/zImage-initramfs";
#filename "/vmlinux-initramfs.elf";
filename "/vmlinux.elf";
}
The host that the sxtsq is connected to via ethernet should have a static IP less than the range and not 192.168.1.1
(I use 192.168.1.12
). The filename
file should be present in the same directory as the dhcpd.conf
.
What I'm stuck on is which file from the build should be used to netboot. In the build output dir I see the following files:
$ find . -maxdepth 1 -perm -111 -type f
./zImage
./Image-initramfs
./vmlinux-initramfs.elf
./vmlinux-initramfs
./vmlinux-initramfs.debug
./mikrotik_sxtsq-5ac-fit-uImage.itb
./vmlinux
./Image
./vmlinux.debug
./vmlinux.elf
./zImage-initramfs
I've tried several of them, but haven't had much success, if anyone has a little more experience with the Mikrotik bootloader that would be helpful.
Here are the wiki notes
You typically boot the
initramfs-kernel.bin
And add these config as wiki details to build the initramfs-kernel
echo CONFIG_TARGET_ROOTFS_INITRAMFS=y >> .config
echo CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE=y >> .config
# make defconfig creates the rest of the config file.
make defconfig
# -j parallel compilation may cause problems, but usually it does not.
# choose the number according to the number of your CPU cores
make -j 6
this commit
does not build ? fails at
make[3] -C target/linux install
arm-openwrt-linux-muslgnueabi-cpp -nostdinc -x assembler-with-cpp -I/media/raid/storage/fresh-git/mikrotik/2/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/linux-5.4.36/arch/arm/boot/dts -I/media/raid/storage/fresh-git/mikrotik/2/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/linux-5.4.36/arch/arm/boot/dts/include -I/media/raid/storage/fresh-git/mikrotik/2/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/linux-5.4.36/include/ -undef -D__DTS__ -o /media/raid/storage/fresh-git/mikrotik/2/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/image-qcom-ipq4019-sxtsq-5ac.dtb.tmp /media/raid/storage/fresh-git/mikrotik/2/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/linux-5.4.36/arch/arm/boot/dts/qcom-ipq4019-sxtsq-5ac.dts
arm-openwrt-linux-muslgnueabi-cpp: error: /media/raid/storage/fresh-git/mikrotik/2/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/linux-5.4.36/arch/arm/boot/dts/qcom-ipq4019-sxtsq-5ac.dts: No such file or directory
arm-openwrt-linux-muslgnueabi-cpp: warning: '-x assembler-with-cpp' after last input file has no effect
arm-openwrt-linux-muslgnueabi-cpp: fatal error: no input files
compilation terminated.
make[5]: *** [Makefile:712: /media/raid/storage/fresh-git/mikrotik/2/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/image-qcom-ipq4019-sxtsq-5ac.dtb] Error 1
make[5]: Leaving directory '/media/raid/storage/fresh-git/mikrotik/2/openwrt/target/linux/ipq40xx/image'
make[4]: *** [Makefile:23: install] Error 2
make[4]: Leaving directory '/media/raid/storage/fresh-git/mikrotik/2/openwrt/target/linux/ipq40xx'
make[3]: *** [Makefile:13: install] Error 2
make[3]: Leaving directory '/media/raid/storage/fresh-git/mikrotik/2/openwrt/target/linux'
time: target/linux/install#62.84#15.37#74.50
make[2]: *** [target/Makefile:25: target/linux/install] Error 2
make[2]: Leaving directory '/media/raid/storage/fresh-git/mikrotik/2/openwrt'
make[1]: *** [target/Makefile:19: /media/raid/storage/fresh-git/mikrotik/2/openwrt/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/stamp/.target_install] Error 2
make[1]: Leaving directory '/media/raid/storage/fresh-git/mikrotik/2/openwrt'
make: *** [/media/raid/storage/fresh-git/mikrotik/2/openwrt/include/toplevel.mk:220: world] Error 2
Can you build with make V=s
? This config is what I have been using to build. It may need this patch:
diff --git a/target/linux/ipq40xx/Makefile b/target/linux/ipq40xx/Makefile
index 8c861f2f03..4dd1636b51 100644
--- a/target/linux/ipq40xx/Makefile
+++ b/target/linux/ipq40xx/Makefile
@@ -8,8 +8,8 @@ CPU_TYPE:=cortex-a7
CPU_SUBTYPE:=neon-vfpv4
SUBTARGETS:=generic
-KERNEL_PATCHVER:=5.4
-KERNEL_TESTING_PATCHVER:=5.4
+KERNEL_PATCHVER:=4.19
+KERNEL_TESTING_PATCHVER:=4.19
KERNELNAME:=zImage Image dtbs
diff --git a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-sxtsq-5ac.dts b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-sxtsq-5ac.dts
index 6ec5d33039..b8f1feeff9 100644
--- a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-sxtsq-5ac.dts
+++ b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-sxtsq-5ac.dts
@@ -34,13 +34,6 @@
stdout-path = "serial0:115200n8";
};
- aliases {
- led-boot = &user;
- led-failsafe = &user;
- led-running = &user;
- led-upgrade = &user;
- };
-
soc {
rng@22000 {
status = "okay";
I've pushed that patch to the branch, so if you pull it again it should build.
ok, i have built with changes to config as im building to include LibreMesh also
So I will try boot bit later
openwrt-ipq40xx-generic-mikrotik_sxtsq-5ac-initramfs-fit-uImage.elf
Where must I put this kernel config ?
The config should go in the base directory of openwrt:
~/git/openwrt$ ls -l .config
-rw-r--r--. 1 daniel daniel 224556 May 4 15:30 .config
Then you can run make menuconfig
to add any packages or other settings.
No, the link above you gave is for a kernel config
https://github.com/hodgesds/kernel-configs/blob/master/linux-ipq40xx-4.19.config
Oh yeah, sorry about that!
It does not look like it bootup normally
it sends the file openwrt.elf
I will build again without LibreMesh and see
root@useri3:/tftpboot# dnsmasq -i enx00133b56066d --dhcp-range=192.168.88.64,192.168.88.128 \
> --dhcp-boot=openwrt.elf \
> --enable-tftp --tftp-root=/tftpboot/ -d -u nobody -p0 -K \
> --log-dhcp --bootp-dynamic \
> --dhcp-host=cc:2d:e0:47:b3:56:d3,192.168.88.96
dnsmasq: started, version 2.80 DNS disabled
dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfile
dnsmasq-dhcp: DHCP, IP range 192.168.88.100 -- 192.168.88.119, lease time 2m
dnsmasq-dhcp: DHCP, IP range 192.168.88.64 -- 192.168.88.128, lease time 1h
dnsmasq-tftp: TFTP root is /tftpboot/
dnsmasq-dhcp: 1626727910 available DHCP range: 192.168.88.64 -- 192.168.88.128
dnsmasq-dhcp: 1626727910 available DHCP range: 192.168.88.100 -- 192.168.88.119
dnsmasq-dhcp: 1626727910 vendor class: ARM__boot
dnsmasq-dhcp: 1626727910 DHCPDISCOVER(enx00133b56066d) cc:2d:e0:47:b3:56
dnsmasq-dhcp: 1626727910 tags: known, enx00133b56066d
dnsmasq-dhcp: 1626727910 DHCPOFFER(enx00133b56066d) 192.168.88.101 cc:2d:e0:47:b3:56
dnsmasq-dhcp: 1626727910 requested options: 1:netmask, 3:router
dnsmasq-dhcp: 1626727910 bootfile name: /tftpboot/openwrt.elf
dnsmasq-dhcp: 1626727910 server name: boothost
dnsmasq-dhcp: 1626727910 next server: 192.168.88.2
dnsmasq-dhcp: 1626727910 sent size: 1 option: 53 message-type 2
dnsmasq-dhcp: 1626727910 sent size: 4 option: 54 server-identifier 192.168.88.2
dnsmasq-dhcp: 1626727910 sent size: 4 option: 51 lease-time 1h
dnsmasq-dhcp: 1626727910 sent size: 4 option: 58 T1 30m
dnsmasq-dhcp: 1626727910 sent size: 4 option: 59 T2 52m30s
dnsmasq-dhcp: 1626727910 sent size: 4 option: 1 netmask 255.255.255.0
dnsmasq-dhcp: 1626727910 sent size: 4 option: 28 broadcast 192.168.88.255
dnsmasq-dhcp: 1626727910 sent size: 4 option: 3 router 192.168.88.2
dnsmasq-dhcp: 3899488303 available DHCP range: 192.168.88.64 -- 192.168.88.128
dnsmasq-dhcp: 3899488303 available DHCP range: 192.168.88.100 -- 192.168.88.119
dnsmasq-dhcp: 3899488303 vendor class: ARM__boot
dnsmasq-dhcp: 3899488303 DHCPREQUEST(enx00133b56066d) 192.168.88.101 cc:2d:e0:47:b3:56
dnsmasq-dhcp: 3899488303 tags: known, enx00133b56066d
dnsmasq-dhcp: 3899488303 DHCPACK(enx00133b56066d) 192.168.88.101 cc:2d:e0:47:b3:56
dnsmasq-dhcp: 3899488303 requested options: 1:netmask, 3:router
dnsmasq-dhcp: 3899488303 bootfile name: /tftpboot/openwrt.elf
dnsmasq-dhcp: 3899488303 server name: boothost
dnsmasq-dhcp: 3899488303 next server: 192.168.88.2
dnsmasq-dhcp: 3899488303 sent size: 1 option: 53 message-type 5
dnsmasq-dhcp: 3899488303 sent size: 4 option: 54 server-identifier 192.168.88.2
dnsmasq-dhcp: 3899488303 sent size: 4 option: 51 lease-time 1h
dnsmasq-dhcp: 3899488303 sent size: 4 option: 58 T1 30m
dnsmasq-dhcp: 3899488303 sent size: 4 option: 59 T2 52m30s
dnsmasq-dhcp: 3899488303 sent size: 4 option: 1 netmask 255.255.255.0
dnsmasq-dhcp: 3899488303 sent size: 4 option: 28 broadcast 192.168.88.255
dnsmasq-dhcp: 3899488303 sent size: 4 option: 3 router 192.168.88.2
dnsmasq-tftp: sent /tftpboot/openwrt.elf to 192.168.88.101
dnsmasq-dhcp: 3899488303 available DHCP range: 192.168.88.64 -- 192.168.88.128
dnsmasq-dhcp: 3899488303 available DHCP range: 192.168.88.100 -- 192.168.88.119
dnsmasq-dhcp: 3899488303 vendor class: ARM__boot
If it is able to boot properly I think it will come up as 192.168.1.1
are you able to ping it on that address
no, not able to ping on 192.168.1.1