Skip to content

Troubleshooting

Quentin Delhaye edited this page May 8, 2023 · 20 revisions

Manjaro is freezing at startup

If Manjaro is freezing on the splash screen when booting up, try to boot without splash.

I have problems with my virtual machine

  • Don't work on the live image, install it first then get to work.

My interrupt is registered, but it does not trigger.

Try changing the GPIO used for the interrupt.

The compilation fails

  • Check the path to your compiler.
  • Check if the following programs are installed: bison, flex, libssl-dev.
  • Check that arm-none-linux-gnueabihf-gcc is still in your path. Remember that the export command is forgotten when you close or change terminal.

Compilation tells me about implicit declaration

You did not include some libraries.

  • <linux/module.h> always
  • <linux/uaccess.h> for copy_from_user and copy_to_user
  • <linux/fs.h> for file_operations
  • <linux/cdev.h> for character device handling

I'm pretty sure my LKM is fine, but I can't insert it into the kernel

  • Try rebooting the board.
  • Check that you compiled it for the correct kernel version. $ uname -r and $ modinfo myLKM.ko should return the same kernel version.

Putting my process to sleep with wait_interruptible() crashes my kernel

  • Check that the process is not holding a lock when put to sleep. You can't do that and the kernel thus crashes.

My BBB seems to not boot on the Linux I flashed on my SD card

The BBB has internal memory on which you might already have another Linux installed. You can force your board to boot on the SD card by pressing the S2 button and resetting the board while keeping the button pressed.

When using cat to read my eeprom device, the output never stops

cat is issuing read() calls to your device until it reads an end-of-file (EOF). This happens when the read() function returns 0. While we return a value larger than zero, cat keeps on calling read(), hence the infinite output.

Instead of using cat, use head: $ head -n 1 /dev/mydevice.

Clone this wiki locally