-
Running OpenWRT on AOPEN Chromebox
07/01/2025 at 01:44 • 0 commentsI found a AOPEN Chromebox and was curious to know what I could run on it.
![]()
It is my first encounter with the Chromebox/Chromebook ecosystem. I was a bit lost at first.
Some Google search and I landed on MrChromebox.tech which provided a good guide.The unit is AOpen Chromebox Commercial, board name NINJA. The WP screw is the one in the middle. The recovery button is on the back.
![]()
I was able to confirm the model by entering recovery mode.
![]()
I followed the instruction to enter developer mode by disabling OS Verification.
![]()
With OS Verification Disabled, I booted the device but developer mode was restricted.
The device owner has disabled Developer Mode for this Device.
![]()
By disabling the OS verification, it seemed that the system was partially reset. I was prompted to setup the device (Connect Network/Wifi, Enter Google Account).
Before continuing with account setup, I performed a system restore. I made a recovery drive from Linux.
![]()
With the system restored, I login on the chromebox. The system run ok, however unit is EOL, the browser is out of date and does not more recent feature (No Chrome Extension, No Google Meet, ... ). Not a big loss to change the OS to Linux.
I was considering flashing the unit SPI flash with an external programmer.
I went thru the steps to enable developer mode once more. This time it worked. I guess login in the unit clear some things.
I was very impressed by how effective MrChromebox.tech Firmware Utility Script was.
It cleared the Flash Software Write Protect. It made a backup of the existing firmware. It flash a UEFI firmware.I was able to run Ubuntu (a bit heavy) and OpenWRT (Like a charm).
![]()
I wish that unit had USB 3.0 port to add a 1GB Ethernet USB dongle.
-
Dell Front USB-C
02/04/2025 at 06:03 • 0 commentsRepurposing Dell USB-C front connector.
I got a USB front panel connector going to a USB 3.0 Motherboard connector from a Dell computer.
The cable had a USB 3.0 type A and USB 3.0 Type-C receptacles. There was also a dual USB 3.0 Type A receptacles to USB 3.0 motherboard connector.
I got an adapter cable to see if I could make use of the Type-C receptacle. The adapter only worked for the dual Type-A front panel connector.
I found this post which mentioned a different pinout for the 20 pin motherboard connector.
Indeed the VBUS does not go to the right pins. Using a USB-A cable pigtail, I validated the following connection on the 20 pin cable ( not motherboard ).
USB-C Pin # Pin # USB-A SS Rx- 1 / Key SS Rx+ 2 19 SS Rx- GND 3 18 SS Rx+ SS Tx- 4 17 GND SS Tx+ 5 16 SS Tx- GND 6 15 SS Tx+ D- 7 14 GND D+ 8 13 D- VBUS 9 12 D+ VBUS 10 11 VBUS The above was confirmed by continuity testing for the USB-A receptacle ( pins 11 to 19).
I removed the 20 pin motherboard cable and connected a regular USB-A cable.
![]()
![]()
![]()
Overall the USB-C works, however PC->Device link seem to have some issue. Perhaps the power path is not able to carry the necessary current. Need to add additional VBUS / GND wire. Or perhaps the 5V VBUS was not too good for the ASM1464 chip.
The TYPE-C pinout is
- D+
- D-
- GND
- SS Rx+
- SS Rx-
- GND
- SS Tx+
- SS Tx-
- VBUS
- VBUS
-
Minisforum X35G - NVMe/SATA RST Controller
11/12/2024 at 05:31 • 2 commentsUpdate Aug 2025
- BIOS Advanced/Debug Menu
klschlitzohr message me about the Advanced/Debug menu in the BIOS which can be enable with ALT+F5.
Boot X35G into BIOS
Press ALT + F5 ( A popup indicate Advance mode enabled )
Save and Reboot
Enter X35G BIOS
Go to Chipset → PCH-IO Configuration → SATA And RST Configuration- UEFI BIOS Variable Store
I wanted to give another go at getting NVMe back in Linux.
I found [Guide] Unlock Intel Flash Descriptor Read/Write Access Permissions for SPI Servicing.
I run UEFITool NE A47 on the BIOS from Minisforum and got the Setup DXE Driver. The IFR Extractor LS gave me the list of BIOS options.
I found the entry for 'SATA Mode Selection'.
0x3A408 One Of: SATA Mode Selection, VarStoreInfo (VarOffset/VarName): 0x5C, VarStore: 0x19, QuestionId: 0x7B1, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 18 10 19 10 B1 07 19 00 5C 00 10 10 00 01 00}
0x3A419 One Of Option: AHCI, Value (8 bit): 0x0 {09 07 1A 10 00 00 00}
0x3A420 Suppress If {0A 82}
0x3A422 QuestionId: 0xE13 equals value 0x0 {12 86 13 0E 00 00}
0x3A428 QuestionId: 0xDE2 equals value 0x0 {12 06 E2 0D 00 00}
0x3A42E And {15 02}
0x3A430 End {29 02}
0x3A432 One Of Option: RAID, Value (8 bit): 0x1 (default) {09 07 1B 10 30 00 01}
0x3A439 End If {29 02}
0x3A43B End One Of {29 02}The BIOS Variable is in VarStore 0x19 at Offset 0x5C.
0x2310E VarStore: VarStoreId: 0x19 [4570B7F1-ADE8-4943-8DC3-406472842384], Size: 0x6FC, Name: PchSetup
The setting can be changed with setup_var.efi from a UEFI Shell.
Read Value:
setup_var.efi PchSetup:0x5C(1)
Set Sata Mode to AHCI:
setup_var.efi PchSetup:0x5C(1)=0x00Rebooting the system, Linux reported access to the NVMe disk.
Original Post
I have been using the X35G as a router and lately to test thunderbolt on Windows and Linux.
Early on I did some wifi testing. Recently I was unable to boot Linux anymore.
My notes on Intel RST Storage Controller issue I am facing.Last week I wanted to test the ST60-2230 wifi module in OpenWRT.
I was unable to boot into my existing install of Ubuntu and OpenWRT present on the NVMe disk. Grub has been having those entries from when I setup that system as a router.I was not able to see any NVMe storage being listed as PCIe devices. The web pointed me to the following boot message.
[ 1.292983] ahci 0000:00:17.0: version 3.0 [ 1.293750] ahci 0000:00:17.0: Found 1 remapped NVMe devices. [ 1.293753] ahci 0000:00:17.0: Switch your BIOS from RAID to AHCI mode to use them. [ 1.293871] ahci 0000:00:17.0: AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x6 impl RAID mode [ 1.293875] ahci 0000:00:17.0: flags: 64bit ncq sntf pm clo only pio slum part deso sadm sds apstLinux does report a NVMe being present in the system but is unable to access it due RAID mode.
00:17.0 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 30) Subsystem: Intel Corporation 82801 Mobile SATA Controller [RAID mode] Kernel driver in use: ahci Kernel modules: ahciThe Windows installation does boot from the NVMe but list that storage being provided by the Intel RST Controller.
![]()
The solution present online all mention disabling RAID mode in the BIOS.
Read more
Unfortunately Minisforum BIOS for the X35G is very barebone with no option for the storage controller... -
X35G AX200 WIFI
08/22/2022 at 03:48 • 0 commentsWhen setting up Minisforum X35G NUC as a OpenWRT router I faced an issue with the Intel AX200 Wifi.
Before going thru the whole install, I tested the X35G with OpenWRT on a USB drive.
At the time, I was able to install the required driver for the AX200 card. I used the mainline firmware since not avaiable as a OpenWRT package. I tested speed and bandwidth correctly with my laptop.When I setup OpenWRT in the nvme storage, iwlwifi starting crapping out.
[ 0.000000] Linux version 5.4.188 [...] [ 5.241045] Intel(R) Wireless WiFi driver for Linux [ 5.242581] iwlwifi 0000:2c:00.0: enabling device (0000 -> 0002) [ 5.248109] iwlwifi 0000:2c:00.0: api flags index 2 larger than supported by driver [ 5.250556] iwlwifi 0000:2c:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 89.3.35.22 [ 5.253192] iwlwifi 0000:2c:00.0: loaded firmware version 59.601f3a66.0 cc-a0-59.ucode op_mode iwlmvm [ 5.260577] iwlwifi 0000:2c:00.0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340 [...] [ 40.039878] iwlwifi 0000:2c:00.0: Microcode SW error detected. Restarting 0x0. [ 40.041965] iwlwifi 0000:2c:00.0: Start IWL Error Log Dump: [ 40.043777] iwlwifi 0000:2c:00.0: Status: 0x00000040, count: 6 [ 40.045501] iwlwifi 0000:2c:00.0: Loaded firmware version: 59.601f3a66.0 cc-a0-59.ucode [ 40.046489] iwlwifi 0000:2c:00.0: 0x00000071 | NMI_INTERRUPT_UMAC_FATAL [ 40.047478] iwlwifi 0000:2c:00.0: 0x000022F1 | trm_hw_status0 [ 40.048540] iwlwifi 0000:2c:00.0: 0x00000000 | trm_hw_status1 [ 40.049545] iwlwifi 0000:2c:00.0: 0x004FAA36 | branchlink2 [ 40.050605] iwlwifi 0000:2c:00.0: 0x000145FA | interruptlink1 [ 40.051666] iwlwifi 0000:2c:00.0: 0x000145FA | interruptlink2 [ 40.052662] iwlwifi 0000:2c:00.0: 0x0000F9E2 | data1 [ 40.053711] iwlwifi 0000:2c:00.0: 0x00001000 | data2 [ 40.054775] iwlwifi 0000:2c:00.0: 0x00000000 | data3 [ 40.055790] iwlwifi 0000:2c:00.0: 0x00000000 | beacon time [ 40.056800] iwlwifi 0000:2c:00.0: 0x00416296 | tsf low [ 40.057817] iwlwifi 0000:2c:00.0: 0x00000000 | tsf hi [ 40.058746] iwlwifi 0000:2c:00.0: 0x00000000 | time gp1 [ 40.059733] iwlwifi 0000:2c:00.0: 0x0041B92D | time gp2 [ 40.060716] iwlwifi 0000:2c:00.0: 0x00000001 | uCode revision type [ 40.061700] iwlwifi 0000:2c:00.0: 0x0000003B | uCode version major [ 40.062666] iwlwifi 0000:2c:00.0: 0x601F3A66 | uCode version minor [ 40.063603] iwlwifi 0000:2c:00.0: 0x00000340 | hw version [ 40.064574] iwlwifi 0000:2c:00.0: 0x00C89000 | board version [ 40.065527] iwlwifi 0000:2c:00.0: 0x0200001C | hcmd [ 40.066382] iwlwifi 0000:2c:00.0: 0x00120000 | isr0 [ 40.067211] iwlwifi 0000:2c:00.0: 0x00000000 | isr1 [ 40.068050] iwlwifi 0000:2c:00.0: 0x08F80002 | isr2 [ 40.068877] iwlwifi 0000:2c:00.0: 0x04C20018 | isr3 [ 40.069761] iwlwifi 0000:2c:00.0: 0x00000000 | isr4 [ 40.070523] iwlwifi 0000:2c:00.0: 0x0031019C | last cmd Id [ 40.071261] iwlwifi 0000:2c:00.0: 0x0000F9E2 | wait_event [ 40.072026] iwlwifi 0000:2c:00.0: 0x00000000 | l2p_control [ 40.072794] iwlwifi 0000:2c:00.0: 0x00000820 | l2p_duration [ 40.073573] iwlwifi 0000:2c:00.0: 0x00000000 | l2p_mhvalid [ 40.074334] iwlwifi 0000:2c:00.0: 0x00008000 | l2p_addr_match [ 40.075091] iwlwifi 0000:2c:00.0: 0x00000009 | lmpm_pmg_sel [ 40.075839] iwlwifi 0000:2c:00.0: 0x00000000 | timestamp [ 40.076580] iwlwifi 0000:2c:00.0: 0x00002874 | flow_handler [ 40.077350] iwlwifi 0000:2c:00.0: Start IWL Error Log Dump: [ 40.078045] iwlwifi 0000:2c:00.0: Status: 0x00000040, count: 7 [ 40.078746] iwlwifi 0000:2c:00.0: 0x20003207 | ADVANCED_SYSASSERT [ 40.079484] iwlwifi 0000:2c:00.0: 0x00000000 | umac branchlink1 [ 40.080229] iwlwifi 0000:2c:00.0: 0x804568FC | umac branchlink2 [ 40.080970] iwlwifi 0000:2c:00.0: 0xC0084F3C | umac interruptlink1 [ 40.081764] iwlwifi 0000:2c:00.0: 0x00000000 | umac interruptlink2 [ 40.082507] iwlwifi 0000:2c:00.0: 0x00033907 | umac data1 [ 40.083220] iwlwifi 0000:2c:00.0: 0xDEADBEEF | umac data2 [ 40.083959] iwlwifi 0000:2c:00.0: 0xDEADBEEF | umac data3 [ 40.084704] iwlwifi 0000:2c:00.0: 0x0000003B | umac major [ 40.085471] iwlwifi...Read more -
RS232 DB9 Pinout
11/16/2020 at 08:52 • 0 commentsIt seems I always struggle with RS232 DB9 pinout. This page is to track it.
A good reference for DB9 can be found in FTDI RS232 Cable. See Datasheet page 17.
The RS232 connector (Male) has the following pinout, i.e configured as a Data Terminal Equipment (DTE).
![Male DB9 RS232 Male DB9 RS232]()
Male DB9 RS232 Pin Type Description 1 Input DCD = Data Carrier Detect 2 Input RXD = Receive Data 3 Output TXD = Transmit Data 4 Output DTR = Data Terminal Ready 5 Ground GND = RS232 signal ground 6 Input DSR = Data Set Ready 7 Output RTS = Request To Send 8 Input CTS = Clear To Send 9 Input / Power RI = Ring Indicator
The device this adapter connects to should follow the following pinout.
The RS232 device connector is then female, configured as Data Communication Equipment (DCE).
![Female DB9 RS232 Female DB9 RS232]()
Female DB9 RS232 Pin Type Description 1 Output DCD = Data Carrier Detect 2 Output RXD = Receive Data
Aka Device Transmit pin (DT-in/DC-out)3 Input TXD = Transmit Data
Aka Device Receive pin (DT-out/DC-in)4 Input DTR = Data Terminal Ready 5 Ground GND = RS232 signal ground 6 Output DSR = Data Set Ready 7 Input RTS = Request To Send
(DT-out/DC-in)8 Output CTS = Clear To Send
(DT-in/DC-out)9 Input / Power RI = Ring Indicator
The data flow in summarized as follow.
DTC to DCE -
Dell Precision 3541 Review
09/29/2019 at 02:10 • 0 commentsI selected the Precision 3541 with the following configuration :
- Intel i5-9400H
- Intel GPU
- 97Wh battery
I upgraded to the following memory and SSD :
One thing I was looking for was to be able to play 4K UHD HDR movies. I assume the on-board HDMI 2.0 would be able to support it. I should have done my research before as HDR is only supported on HDMI 2.0a.
The Type-C port allows a lot of versatility. Using a Type-C to HDMI 2.0b adapter, I am able to play 4K UHD HDR 10bit @ 30Hz. The color space is reduced if the refresh rate is increased to 60Hz. See UPTab USB C to HDMI 2.0b Active HDR Adapter 4K 60Hz.
Benchmark
The i5-9400H is integrated with a 35W profile as listed in Intel TDP-down configuration. I was interested to find how this TDP-down was performed.
By default the Turbo Boost Max Power is set to 35W. This limit can be changed with Intel Extreme Tuning Utility (XTU).
Summary :
- Cinebench R20 @ 35W : 1758pts
- Temp 86°C
- Freq 3.30 GHz
- Cinebench R20 @ 45W : 1892pts
- Temp 94°C
- Freq 3.63 GHz
![35W TDP 35W TDP]()
![45W TDP 45W TDP]()
Increasing the TDP to 45W needs to be done manually. How it is reset to 35W is unknown. The configuration shown by Intel XTU shows 45W Turbo Boost Max Power but the system runs at 35W.
Note on the cooling solution :
- On Intel GPU system, there is only 1 heat pipe from the CPU to the fan assembly
- The fan speed let the system heat up before ramping up. The balance between fan noise and heat is always a challenge.
- Rising the laptop from the table leads to better temp : 78°C after Cinebench @ 35W
Intel XTU shows the different CPU settings for the i5-9400H
-
Zotac EI751 Repasting
12/09/2018 at 00:49 • 0 commentsI got my EI751 at the beginning of 2016. After 2.5 years it was becoming a bit loud and hot.
I got around to repasting it mid 2018, this is the log.
![]()
I removed the screws holding the board down. This voids the warranty which is not ideal. It was quite tricky to pull the board out. I ended bending the enclosure where the antenna connector is. The top cover is actually screwed to the main shell, don't try forcing anything.
![]()
The fan comes off with a bit of force as thermal pad sticks to the heatsink and the board. Have some thermal pad to replace the old one, 1.5mm tick should do it. The heatsink cover the CPU and the PCH.
Testing with Intel XTU indicates thermal throttling and current limit throttling. Eventually a better cooling solution could be fitted ( would not use the standard case ). Then the actual power delivery may be the limiting factor. I may try to improve the cooling and build a custom case after I renew this computer.
Prim95 load leads to thermal throttling and power limit throttling. With a better colling and increasing power limits, the boost clocks could be maintained.
I wish there was more SATA slot as the single driver will not make the best media center. Improve cooling would go a long way to make this PC more silent to go by a TV.
Intel I7 5775R - Intel XTU Tuning Control.
-
OpenWRT Bridge Firewalling
07/17/2016 at 22:27 • 3 commentsI configured my OpenVPN to connect 2 network at layer 2. Since broadcast goes across the tunnel and the 2 network have their own dhcp server for their respective gateway. The dhcp packet should be filtered.
iptables -I zone_lan_forward -o br-lan -m physdev --physdev-out tap0 -p udp --dport 67:68 --sport 67:68 -j REJECT iptables -I zone_lan_forward -i br-lan -m physdev --physdev-in tap0 -p udp --dport 67:68 --sport 67:68 -j REJECT
The system should be configured to enable bridge firewalling in /etc/sysctrl.config
net.bridge.bridge-nf-call-iptables=1
I configured the above setting on my custom OpenWRT 15.05 image and run into some issues.sysctl: error: 'net.bridge.bridge-nf-call-iptables' is an unknown key xt_physdev: Unknown symbol br_netfilter_enable (err 0) nf_conntrack: table full, dropping packet
I would like to avoid changing my kernel on my device, just adding kernel module.
Since I build my own image with only certain packages, the kernel doesn't have support for everything. On a clean build with the default configuration, the kernel only has CONFIG_BRIDGE=y. Support for bridge firewall is not enabled,CONFIG_BRIDGE_NETFILTER is not set.
The kernel configuration can be change to generate net/bridge/br_netfilter.ko module for the system which has it missing. OpenWRT doesn't have a package for that kernel module. It would need to be copied manually.
Add bridge firewalling support to iptables with iptables-mod-extra. The kmod-ipt-extra will have xt_physdev module because CONFIG_BRIDGE_NETFILTER is enabled in the kernel.
How does default OpenWRT image has the support for bridge firewalling in their images ?
OpenWRT enables all packages to be build which configure the kernel configuration with the required dependencies. When enabling ebtables package, the kernel configuration is overwritten with CONFIG_BRIDGE_NETFILTER=y.
build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.36/.config.old:CONFIG_BRIDGE=y build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.36/.config.old:CONFIG_BRIDGE_NETFILTER=y build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.36/.config:CONFIG_BRIDGE_NETFILTER=y build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.36/.config:CONFIG_BRIDGE=y build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.36/.config.override:CONFIG_BRIDGE=m build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.36/.config.override:CONFIG_BRIDGE_NETFILTER=y build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.36/.config.target:CONFIG_BRIDGE=y build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.36/.config.target:CONFIG_BRIDGE_NETFILTER=m build_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/linux-3.18.36/.config:CONFIG_BRIDGE_NETFILTER=m build_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/linux-3.18.36/.config:CONFIG_BRIDGE=m
I guess I will be need to be more careful when using opkg --force-depends option in the future. Once I have generated my image, I should use the matching SDK so I don't cause some kernel panic on the system.
-
Zotac EI751 Review
03/18/2016 at 19:09 • 0 commentsI search for NUC/Mini-PC and found some with a configuration that would suit my needs.
Configuration :
- Quad core
- Multiple Display support
- Dual Ethernet ports
- Optical SPDIF Audio interface.
- Multiple Sata support
I found the GB-BXi7-4770R and the ZBOX-EI751. I decided to go for the Zotac as it has dual Ethernet port and a newer processor.
My system is made of :
- ZBOX-EI751
- Crucial MX200 250GB mSATA - CT250MX200SSD3
- Kingston Impact - 16GB - DDR3L 1866MHz - HX318LS11IBK2/16
- WD Black 750GB - WD7500BPKX
The Kingston Impact HX318LS11IBK2/16 works in this system. The RAM has to be DDR3L. CPU-Z reports a RAM voltage of 1.35V.
Looking for some information about EI751 online, I found information about an onboard SATA connector in addition to the mSATA and 2.5" SATA connector. It turns out that the BIOS do list an additional SATA port but the actual SATA connector is not populated on the motherboard. They could have done us a favor by populating those connector ( SATA and COM1 ). I may populate them if i find suitable connector but I'll wait to break the warranty seal.
I wanted to be able to use 2 digital full HD monitors. The EI751 has 3 display output ( 2 x DisplayPort and 1 DVI ). I connected my LCD to the DVI port with the provided HDMI adapter and I was surprised to have audio support.
I was unable to use 3 display simultaneously under Windows 7. Windows screen resolution pops Unable to save display settings error. Asking Zotac about it, they say The EI751 supported three display outputs at the same time under Windows. But no further information about it. Intel Iris Pro Graphic 6200 is not listed in 3 Displays FAQ ! Need to check under Linux.

The I7-5775R processor support a wide range of frequency steps.


















