Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
raspberry-pi:ipfire-on-rpicm4 [2023/12/16 23:21] Zyzonixraspberry-pi:ipfire-on-rpicm4 [2025/04/13 12:02] (current) – [Adjusting Interfaces (MAC Addresses) (important!)] Samsoneko
Line 6: Line 6:
  
 //Disclaimer: all provided links in this article **aren't** sponsored!// //Disclaimer: all provided links in this article **aren't** sponsored!//
-<callout type="info" icon="true">Tutorial tested against a Raspberry Pi Compute Module 4 (4GB, rev. 1.2) and IPFire Core Update 179. During the setup a second Raspberry Pi with local attached keyboard and monitor was used. </callout>+<callout type="info" icon="true">Tutorial tested against a Raspberry Pi Compute Module 4 (4GB, rev. 1.2) and IPFire Core Update 179. During the setup a second Raspberry Pi 3B+ with local attached keyboard and monitor was used. </callout>
  
 → IPFire's wiki can be found [[https://wiki.ipfire.org/|here]]. → IPFire's wiki can be found [[https://wiki.ipfire.org/|here]].
Line 22: Line 22:
   * //HDMI-Cable//   * //HDMI-Cable//
   * //Keyboard//   * //Keyboard//
 +  * //or USB2TTL Apdapter//
  
 ===== Download and flash the Image to the SD-Card ===== ===== Download and flash the Image to the SD-Card =====
Line 47: Line 48:
 Now connect the following pins on your carrier board's GPIO and your second Pi's GPIO with three jumper wires (female to female): Now connect the following pins on your carrier board's GPIO and your second Pi's GPIO with three jumper wires (female to female):
 <WRAP 40%> <WRAP 40%>
-^ Carrier Board (CM4)  ^ 2nd Raspberry Pi  ^ Use               ^ +^ Carrier Board (CM4)  ^ 2nd Raspberry Pi / USB2TTL  ^ Use               ^ 
-| **''6''**            | **''6''**         | Ground            +| **''6''**            | **''6''** / **''GND''**     | Ground (GND)      
-| **''10''**           | **''8''**         | Receive and send  | +| **''10''**           | **''8''** / **''TX''**      | Receive and send  | 
-| **''8''**            | **''10''**        | Send and receive  |+| **''8''**            | **''10''** / **''RX''**     | Send and receive  |
 </WRAP> </WRAP>
  
Line 61: Line 62:
  
  
-===== Open serial console with screen =====+===== Open serial console using screen =====
 Before you can open a serial connection: serial console must also be enabled on the Pi from which you wish to connect. Therefore check if your ''/boot/config.txt'' contains ''enable_uart=1''. If not, add it at **top (!)** and reboot. Before you can open a serial connection: serial console must also be enabled on the Pi from which you wish to connect. Therefore check if your ''/boot/config.txt'' contains ''enable_uart=1''. If not, add it at **top (!)** and reboot.
  
 <callout type="warning" icon="true"> <callout type="warning" icon="true">
-When using a Raspberry Pi 4B also add the following lines to your ''config.txt'' to get a human-readable console:+When using a Raspberry Pi with bluetooth as second device also add the following lines to your ''config.txt'':
 <code bash> <code bash>
 +# disable bluetooth via uart
 dtoverlay=pi3-disable-bt dtoverlay=pi3-disable-bt
 dtoverlay=pi3-miniuart-bt dtoverlay=pi3-miniuart-bt
 +dtoverlay=disable-bt
 +dtoverlay=miniuart-bt
 </code> </code>
 +This will disable the bluetooth module, because this may break your serial connection as it also uses the uart console.
 +
 +In general there might be issues with the serial connection, it's recommended to firstly open the serial console on the second Pi and then booting up the CM4. Additionally **do not** dis- and reconnect to a running console session, otherwise your console might not be readable anymore for this session.
 </callout> </callout>
  
-Then you can execute the follwing command from the second Pi to connect to your serial console. It doens't matter if you're using an attached keyboard and monitor or SSH-connection.+Then you can execute the follwing command from the second Pi to connect to your serial console. **It's strongly recommended to use a local attached keyboard and monitor on Pi that boots to CLI(!) rather than creating the serial connection via SSH / Desktop.**
 <code bash>screen /dev/ttyS0 115200</code> <code bash>screen /dev/ttyS0 115200</code>
 +(root-permission required!)
 → you might install ''screen'' befire by running the following command: → you might install ''screen'' befire by running the following command:
 <code bash>sudo apt install screen</code> <code bash>sudo apt install screen</code>
 +If ''/dev/ttyS0'' doesn't work, use ''/dev/serial0''. In case you are using a USB2TTL-Card use ''/dev/ttyUSB0''.
  
 Finally perform the setup of IPFire as usual! Finally perform the setup of IPFire as usual!
  
 With ''Ctrl+A'' and ''D'' you can quit the ''screen''-session. With ''Ctrl+A'' and ''D'' you can quit the ''screen''-session.
 +
 +===== Select correct boot method =====
 +
 +When booting for the first time, there will be three entries in the grub bootloader.
 +
 +**Select the 3rd option, that contains ''serial console''!**
 +
 +===== Adjusting Interfaces (MAC Addresses) (important!) =====
 +
 +As described also in this [[https://community.ipfire.org/t/rpi-cm4-red-interface-not-available-after-reboot/7119/3|blog post]] in IPFire's official forum, there are assigment issues with the carrier board's NICs. It seems that the second PCIe NIC gets a self-assignet MAC everytime the device boots up. This is followed by the host OS no longer recognizing the NIC. To solve this issue there is a more or less fancy workaround here in this wiki: [[linux:linux-tutorials:set-persistent-mac-rtl8111|Set persistent MAC for RTL8111/8168/8411 (r8169) with udev]] (internal link).
 +
 +
 +It's also recommended to completely shut down again and reboot to verify the changes!
 +
 +----
  
 //Resources used: [[https://www.cyberciti.biz/hardware/5-linux-unix-commands-for-connecting-to-the-serial-console/|cyberciti.biz - linux serial console]], [[https://scribles.net/setting-up-uart-serial-communication-between-raspberry-pis/|scribles.net - uart communitation between to Raspberry Pis]] and [[https://wiki.ipfire.org/hardware/arm/rpi/four#fn:1|wiki.ipfire.org - Raspberry Pi 4 Model B]] //Resources used: [[https://www.cyberciti.biz/hardware/5-linux-unix-commands-for-connecting-to-the-serial-console/|cyberciti.biz - linux serial console]], [[https://scribles.net/setting-up-uart-serial-communication-between-raspberry-pis/|scribles.net - uart communitation between to Raspberry Pis]] and [[https://wiki.ipfire.org/hardware/arm/rpi/four#fn:1|wiki.ipfire.org - Raspberry Pi 4 Model B]]
  
  • raspberry-pi/ipfire-on-rpicm4.1702765273.txt.gz
  • Last modified: 2023/12/16 23:21
  • by Zyzonix