elinux | 嵌入式 Linux 知识库 中文翻译计划;本项目发起人发布了《360 剖析 Linux | Code Inspection library
kandi X-RAY | elinux Summary
kandi X-RAY | elinux Summary
elinux
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of elinux
elinux Key Features
elinux Examples and Code Snippets
Community Discussions
Trending Discussions on elinux
QUESTION
I am trying to get my BeagleBone Black to post to my monitor, to be able to use it as a stand-alone PC.
This was possible with the image that the BeagleBone shipped with.
I have just installed a new image on my BeagleBone Black Rev C.
The new image is AM3358 Debian 10.3 2020-04-06 4GB SD IoT.
I am able to SSH to it using PuTTY, and this way I have succesfully performed some actions with it, like using wget to download files from Google Drive etc.
So it seems like the board is working well, and that the HDMI output is disabled somewhere.
I have copied the contents of the uEnv.txt-file below, to show that the lines regarding disabling of video are commented out:
...ANSWER
Answered 2022-Jan-16 at 20:12I solved the problem, following a solution found here.
The solution was to run a kernel update:
QUESTION
Thank you for watching this.
I'm having difficulties with my BBB on CAN communication like for months... I'd be really pleased if you could give me just a little help!
I'm working on CAN protocol between BBB and another CAN device. The another device is confirmed to be working alright with CAN. I'm using my BBB with Cloud9 platform on windows laptop, and on the another device, it's using CAN0.
I have set the 'config-pin' on BBB like below using CAN1, and I tried 'cansend' utility. The bitratre value on the another device is also set to be equal.
...ANSWER
Answered 2021-Aug-07 at 03:47Some help on can or socketCAN will be found here for the BBB or other family board:
QUESTION
I'm trying to setup a Raspberry Pi 3 B+ with a Waveshare BME280 Environmental Sensor. I followed this guide to wire the cables and ran the supplied bme280.py script. My sensor has 2 additional cables, the CS and ADDR/MISO, that are not present in the model on the guide but the rest are plugged in to the same GPIO pins. The I2C and SPI interfaces are enabled and I am running the latest Raspbian OS Lite.
When I run the script, I get the following message:
Traceback (most recent call last):
File "bme280.py", line 172, in
main()
File "bme280.py", line 161, in main
(chip_id, chip_version) = readBME280ID()
File "bme280.py", line 56, in readBME280ID
(chip_id, chip_version) = bus.read_i2c_block_data(addr, REG_ID, 2)
OSError: [Errno 121] Remote I/O error
There's another odd issue: when I run i2cdetect -y 1
I get every line with dashes, but if I run it a second time immediately after, I get x77 to show up, but x76 still doesn't.
I found a similar thread and tried modifying my /boot/config.txt file by adding i2c_baudrate=100000
and rebooting but that did not fix it.
I made sure to test the pi using gpiotest and the results came back as
Skipped non-user gpios: 0 1 28 29 30 31
Tested user gpios: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Failed user gpios: None
I had gotten similar issues using a DHT11 sensor and running Adafruit libraries and got an error signifying there was no data flowing from the sensor. I tried using several different sensors and Raspberry Pis and have reinstalled the OS several times over. At this point, I'm not sure how to proceed. Any help is appreciated.
...ANSWER
Answered 2021-Mar-09 at 01:43I managed to create a very hacky solution to this issue. Since i2cdetect seems to only read devices on the second (or later) times it is run, I decided to simulate running it inside the sensor script.
I added the following lines to my code:
QUESTION
I am trying to use CAN J1939 standard on an embedded Linux system running Ubuntu 18.04, kernel 5.4.0-52-generic.
This elinux page indicates that j1939.h "got in the mainline kernel since v5.4". And kernel.org's documentation for j1939 implies that it is in the main kernel.
Lastly, I do have can-utils installed.
When I compile a cpp file with #include
, I get a no such file or directory
error.
I've gone through linux/can
directory to confirm and j1939.h
is not there. Is there any reason why my v5.4 kernel wouldn't have j1939.h
? How can I best use j1939.h
in my program?
ANSWER
Answered 2020-Oct-28 at 21:55You need development packages for these headers. You can search for which package you need on the Ubuntu Packages site. I.e. in this case packages containing j1939.h. You're probably looking for linux-libc-dev
or linux-headers-5.4.0-26
.
QUESTION
I was trying my hands on addr2line
to convert a "pc" register value from a kernel oops (example) to a line in the kernel code. I believe that the value of the program counter represents a virtual address.
Now this post on Stack Overflow says that we generally provide an offset to addr2line and not a virtual address. VA can only be used when the address space randomization is turned off. Does this hold true for a kernel as well? I believe it should.
This Embedded Linux Conference talk on slide 14 also makes use of the program counter value to jump to the line in code, but I believe this would work only work when the address space randomization is off. Otherwise, once the virtual memory is initialized, it's possible that the kernel gets relocated randomly. In this case, any virtual address picked from an oops should not make any sense to addr2line. This is all theory. I have 2 questions now:
- Is my understanding correct? If not, please correct me.
- How do we turn off the address space randomization for a kernel so that the location of a symbol can be predicted?
ANSWER
Answered 2020-Jul-14 at 17:34Yes, your understanding is correct.
You have multiple options:
- Completely remove KASLR support by building the kernel with
CONFIG_RANDOMIZE_BASE=n
Drastic solution, wouldn't recommend if not for developing purposes. - Boot the kernel with the command line argument
nokaslr
. See here for more info. - Manually compute the offset of the address from the start of the kernel's
.text
segment. Not that easy, would require knowing the base address beforehand or extrapolating it from the panic info. Definitely doable with somegrep
+objdump
+ some more ELF tools probably, but pretty annoying and time consuming.
NB: of course points 1 and 2 require that the kernel is compiled with debugging symbols for addr2line
to do its job.
See also: this Linux kernel doc page.
QUESTION
I'm trying to use UART5 with python, I've edited uEnv.txt to disable HDMI
I've upgraded BeagleBone Black to Debian 10 BeagleBoard.org Debian Buster IoT Image 2020-04-06
uname -a
shows:
Linux beaglebone 4.19.94-ti-r45 #1buster SMP PREEMPT Thu Jun 18 19:18:41 UTC 2020 armv7l GNU/Linux
I'm trying to use UART5 with python, but it fails with every UART, python shows the message:
py_setup_uart(UART5): set_pin_mode() failed for pin=P8_38Traceback (most recent call last):
when I execute config-pin
it shows:
/sys/devices/platform/ocp/ocp:P8_34_pinmux/state failed, No such device
also there is no slots:
/sys/devices/bone_capemgr.*/slots': No such file or directory
dmesg | grep serial
shows:
ANSWER
Answered 2020-Jun-30 at 02:33in /boot/uEnv.txt, uncomment disable_uboot_overlay_video=1
.
Things can get complicated if the uncommenting of the _video=1 line does not work.
I can help further but please reply if it works or not.
QUESTION
I have an SD card with a standard Beaglebone Debian image. I also have the MLO
and u-boot.img
files from building u-boot. I'd like to install the new u-boot on the SD card and then flash the modified image to MMC on a Beaglebone Black.
I can flash onboard MMC from the SD card just fine. I can also connect to the board over serial and stop in u-boot.
What I don't know how to do is write the new u-boot to the SD card correctly. I've tried a few things:
These elinux instructions are for erasing the SD card and creating a new bootable partition. I didn't actually try this because I want to install the new u-boot to an existing image.
...
ANSWER
Answered 2020-Mar-29 at 00:32What I don't know how to do is write the new u-boot to the SD card correctly.
...
The SD card contains the Debian u have7.9 2015-11-12 firmware image from beagleboard latest images.
The crux of your problem is that the ROM boot code of the AM335x SoC is capable of reading the MLO from the SD card (or eMMC) in either raw sector mode or in FAT file mode. Additionally in raw mode there are four possible areas to locate the boot image, although when the first sector of the medium contains the MBR, then there are only three areas.
The AM335x SoC will check for a boot image using raw mode first.
So if you want to install the MLO as a file in the FAT filesystem, then you have to ensure that any previous MLO stored in raw sectors are removed.
IOW there are multiple ways of storing the MLO on eMMC/SD card, and the order in which they are checked determines which image is used to boot. The FAT file would be the last image in the boot order.
The SD card with the Debian image that you have stores the MLO and u-boot.img as raw sectors (i.e. note that the FAT filesystem starts at sector 2049, offset 0x100000, so there are unallocated sectors preceding that first partition).
[Note that sector numbering starts with 1, not 0.]
The existing MLO on your SD card is stored at sector 257 (offset 0x20000 or 128K) which includes a sector for its TOC (Table of Contents) and an eight-byte GP header.
The existing u-boot.img on your SD card is stored at sector 769 (offset 0x60000 or 384K).
You can replace both of these images using the beyondlogic instructions, as the seek=
displacements are correct for what already exists on your SD card.
The Digikey instructions specify similar seek=
displacements but use different blocksizes and counts. The first command would also remove the MBR (and render the FAT and ext filesystems inaccessible).
Alternatively you could zero-out the TOC so that raw mode would fail and then the ROM boot would revert to FAT file mode.
You could then dispense with dd
commands and sector offsets, and use ordinary filesystem commands.
Your SD card has only one TOC to eliminate, so one command would suffice:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install elinux
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page