From Waveshare Wiki
Jump to: navigation, search
PCIe TO M.2 (A)





Extended 4-Ch PCIe Gen 2 ×1 Expander, Stable Performance, Driver-Free


  • Extending 1-ch PCIe to 4-ch PCIe Gen 2 × 1 sockets, PCIe Gen 1 × 1 compatible
  • Flexible power supply options: powered from either PCIe 12V, OR from 12V DC header
  • Adopts ASM1184 controller, driver-free, plug and play
  • Not allow direct plugging onto the PC motherboard


  • When connecting to Compute Module 4 PoE 4G Board or the Compute Module 4 PoE 4G Board, no external power adapter is required.
  • This adapter does not require a driver when using it except the PCIe devices.
  • Max speed of the adapter is 500MB/s
  • The module should be powered by a 12V
  • The maximum output current of each PCIe interface 3.3V power supply must be less than 1.5A.

Supported Device

Support list:click here
For other devices, you need to rebuild the kernel

Build Kernel

You can directly refer to:Click it

Ubuntu PC is required to build the kernel
Hereby environment:Ubuntu- :

Set in Ubuntu PC

Install dependencies

 sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev

Install cross-compilation tools

 sudo apt install neovim
 wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz

Add the line export PATH=$PATH:~/gcc-linaro/bin to .bashrc

nvim ~/.bashrc

Update the environment parameters

 source ~/.bashrc 

Clock the linux repo

 git clone --depth=1 https://github.com/raspberrypi/linux

Generate the .config file

 cd linux
 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig

Configure the file and add the driver

 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig

Build the kernel

 make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs

Configure Raspberry Pi
Set the password
 sudo su

Modify sshd_config file:

 sudo nano /etc/ssh/sshd_config

PermitRootLogin prohibit-password to #PermitRootLogin yes restart Raspberry Pi

 sudo reboot
Set in Ubuntu PC:
 sudo sshfs [email protected]:/ /mnt/pi-ext4
 sudo sshfs [email protected]:/boot /mnt/pi-fat32
 #192.168.x.x should be the IP of Raspberry Pi
 sudo env PATH=$PATH make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=/mnt/pi-ext4 modules_install
 sudo cp arch/arm64/boot/Image /mnt/pi-fat32/kernel8.img
 sudo cp arch/arm64/boot/dts/broadcom/*.dtb /mnt/pi-fat32/
 sudo cp arch/arm64/boot/dts/overlays/*.dtb* /mnt/pi-fat32/overlays/
 sudo cp arch/arm64/boot/dts/overlays/README /mnt/pi-fat32/overlays/
 sudo apt install make

If you get the read: Connection reset by peer error, please detect the ssh public key and test it again

 ssh-keygen -f "/root/.ssh/known_hosts" -R 192.168.x.x
  #192.168.x.x should be the IP of the Raspberry Pi



If you require technical support, please go to the Support page and open a tickets.