Search the Community
Showing results for tags 'development board'.
-
Installing Linux on an ARM development board can be complex, but this detailed guide will walk you through each step from preparation to booting Linux. 1. Preparation Before you start, gather the following tools and software: A computer running Linux An ARM-based development board A USB-to-serial adapter A Micro USB cable An SD card reader A blank SD card A USB keyboard and mouse (optional) An HDMI monitor (optional) Download Linux Kernel and Root Filesystem Download the appropriate Linux kernel and root filesystem for your ARM board from the official site (Neardi offers download links). Save them in a temporary folder on your computer. Create Bootable SD Card You will use the SD card as the boot medium. Insert the SD card into the reader and connect it to your computer. Open a terminal and run: $ sudo fdisk -l This lists all disk devices. Identify the device node for your SD card (e.g., /dev/sdb). 2. Unmount all partitions on the SD card: $ sudo umount /dev/sdb* 3.Create a new partition table and partition: $ sudo fdisk /dev/sdb Use the n command to create a new partition, set it to Linux filesystem type using the t command, and save with the w command. 4. Format the partition: $ sudo mkfs.ext4 /dev/sdb1 5. Create a mount point and mount the partition: $ sudo mkdir /mnt/sdcard $ sudo mount /dev/sdb1 /mnt/sdcard 6. Extract the root filesystem to the SD card: $ sudo tar zxvf rootfs.tar.gz -C /mnt/sdcard Install and Configure the Bootloader Remove the SD card from your computer and insert it into the development board. Connect the board to your computer using the USB-to-serial adapter. Open a terminal and use a serial tool (like minicom or picocom) to connect: $ sudo minicom -D /dev/ttyUSB0 Press Enter to access the command line. 3. Find the device node of the boot SD card: $ fdisk -l Note the path for later use. 4. Install the bootloader to the SD card: $ sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8 Replace u-boot-sunxi-with-spl.bin with your bootloader file path and /dev/sdX with your SD card’s device node. Then, reinsert the SD card into the board. 5. Copy the kernel image to the boot SD card: $ sudo cp zImage /mnt/sdcard/boot Replace zImage with your actual kernel image file path. 6. Copy the device tree file: $ sudo cp sun8i-h3-orangepi-one.dtb /mnt/sdcard/boot Replace with your device tree file path. 7. Create a boot.cmd file in the /mnt/sdcard/boot directory and add: setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rootwait panic=10 fatload mmc 0:1 0x4000000 zImage fatload mmc 0:1 0x42000000 sun8i-h3-orangepi-one.dtb bootz 0x4000000 - 0x42000000 Save and close the file. 8. Compile boot.cmd into a binary: $ sudo mkimage -C none -A arm -T script -d boot.cmd boot.scr Then copy it to the boot directory: $ sudo cp boot.scr /mnt/sdcard/boot Unmount the SD card and insert it into the development board. Boot the Development Board Connect the USB keyboard and mouse (if available) and an HDMI monitor. Power on the board. During the boot process, you should see Linux startup messages on the HDMI display. If successful, you’ll reach a login prompt. Enter the default username and password, or the credentials you set, to access the Linux command line.
-
System sleep and wake technology is a crucial aspect of power management. Firstly, it allows the system to reduce power consumption to the lowest level when idle by putting external devices, internal IP of the chip, and clocks into a low-power state or completely shut off the power state, thereby greatly extending the product's runtime. Secondly, when users need the system to run, it can quickly recover power, clocks, internal IP of the chip, and the working state of external devices to ensure that the user's experience is not interrupted. Forlinx T113 supports two types of sleep modes: freeze and mem. These two methods can be operated through the/sys/power/state file node, and the user can trigger the corresponding sleep state by writing freeze or mem to the file node. Before hibernation, the system configures the wakeup source. Once the system enters the sleep state, it can be awakened by these wake-up sources, such as keys, RTC, etc., when needed. This design allows users to choose when and how to wake up the system quickly according to their needs, achieving a balance between power consumption minimization and fast recovery. This mechanism enables the system to greatly reduce power consumption in the sleep state, while retaining the convenience of the user to use the system quickly after waking up. Here's how to enter sleep mode and wake up the system using the RTC on the Forlinx Embedded OK113i-S development board. Two Sleep Modes: freeze: Freezes I/O devices, placing them into a low-power state, and puts the processor into an idle state. It offers the quickest wake-up time, but consumes more power than other methods. Measured current with only serial port connected and 5V power supply: Approximately 0.112A mem: Suspend-to-RAM, where the computer stores current runtime state data in memory and shuts down the hard drive, external devices, etc., entering a wait state. At this time, the memory still needs power to maintain its data, but the whole machine consumes very little power. When recovering, the computer reads data from memory, returns to the state before suspension, and recovers quickly. Measured current with only serial port connected and 5V power supply: approximately 0.076A 1. cat /sys/power/state shows the supported modes. 2. cat /sys/power/state shows the supported modes. 3. cat /sys/power/state shows the supported modes. RTC Alarm Wakeup Tips: Note that the internal RTC needs to be used here; external RTCs do not support wakeup functionality, and we will mention this later. Enter the kernel configuration: Follow the instructions in the diagram to select the wake-up function. After completing the configuration, save it, then modify the device tree file to enable the internal RTC. Compile after saving: After the compilation is successful, it is packaged into an image. After the programming is completed, we test it at the serial port terminal. Enter the serial port terminal for test: echo''+15''> /sys/class/rtc/rtc0/wakealarm This sets a 15-second timer, which can be adjusted as needed. After executing this command, it will take effect. If the system goes into sleep after 15 seconds, it will not trigger a wake-up. (Note: This requires using the internal RTC; external RTC does not support wake-up functionality.)echo mem > /sys/power/state (The two commands need to be entered closely together; a long interval between them will make them ineffective.) (It should be noted here that when the internal RTC is not opened, the default external RTC node is rtc0. After modification, the external RTC device node will be changed to rtc1.) 3. cat /sys/power/state shows the supported modes. RTC Alarm Wakeup Tips: Note that the internal RTC needs to be used here; external RTCs do not support wakeup functionality, and it will be mentioned later. Enter the kernel configuration: Follow the instructions in the diagram to select the wake-up function. After completing the configuration, save it, then modify the device tree file to enable the internal RTC. Compile after saving: After the compilation is successful, it is packaged into an image. After the programming is completed, we test it at the serial port terminal. Enter the serial port terminal for test: echo''+15''> /sys/class/rtc/rtc0/wakealarm This sets a 15-second timer, which can be adjusted as needed. After executing this command, it will take effect. If the system goes into sleep after 15 seconds, it will not trigger a wake-up. (Note: This requires using the internal RTC; external RTC does not support wake-up functionality.) echo mem > /sys/power/state (The two commands need to be entered closely together; a long interval between them will make them ineffective.) It should be noted here that when the internal RTC is not opened, the default external RTC node is rtc0. After modification, the external RTC device node will be changed to rtc1.
-
- ok113i-s
- development board
-
(and 1 more)
Tagged with:
-
1. Compile the fw_printenv tool Execute under the uboot source path, and then generate the executable file of the fw _ printenv under tools/env. . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabimake env 2. Configure fw_env.config file Modify the fw_env.config file under tools/env in the uboot source directory according to the mtd partition, the location and size of the UBOOT environment variables, etc. See the instructions in the fw_env.config file and the /tools/env/README file for specific modifications. Among them, Device offset, Env size, and Flash sector size should correspond respectively to the three macro definitions CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE, and CONFIG_ENV_SECT_SIZE in the include/configs/xxxx.h file in the U-Boot source code directory. vi include/configs/mx6ul_14x14_evk.h Take the test 256nand as an example: CONFIG_ENV_OFFSET = 0x600000 ONFIG_ENV_SECT_SIZE = 0x20000 Open the tools/env/fw_env.config and modify as shown in the following figures: Take the test 1gnand as an example: CONFIG_ENV_OFFSET = 0x1000000 ONFIG_ENV_SECT_SIZE = 0x20000 nand model number MT29F8G08ABACA Refer to the manual to change the ENV_SECT_SIZE value to 256K. Open the tools/env/fw_env.config and modify as shown in the following figures: nand model number MT29F8G08ABABA Refer to the manual to change the ENV_SECT_SIZE value to 512K. Open the tools/env/fw_env.config and modify as shown in the following figures: 3. Copy the file Copy tools/env/fw_env.config to the /etc path of the development board; Copy tools/env/fw_printenv to the root file system of the development board under the path /usr/bin. And create a soft link to fw_setenv ln -s /usr/bin/fw_printenv /usr/bin/fw_setenv 4. Read and write environment variable test Read environment: Write environment variable: The uboot phase has been modified synchronously. 5. Problems and solutions Problem: make env reports an error in the uboot source code Solution: Comment out the CC in the top-level Makefile and use the environment variable in the CC.
-
- fw printenv
- uboot
-
(and 3 more)
Tagged with:
-
Forlinx Embedded OK113i-S development board has gained a lot of attention since it came into the market for some time, and it has also become a high-quality choice for many customers to select projects. In the actual project development, engineers may need to migrate some tools or protocols in the file system, so how to migrate them? We can port new functions in the Buildroot of the OK113i-S development board by adding the package configuration. This article will show you how to port the MQTT protocol in the Buildroot of the T113-i development board. Part 1 Configuration File Introduction First, take a look at the configuration files involved in porting functionality in Buildroot. View the existing configuration files in the source code of the embedded OK113i-S development board. The following files are included in the path: buildroot/buildroot-201902/package/mosquitto: Config.in mosquitto.mk mosquitto.hash mosquitto.service S50mosquitto ① Config.in The Config.in file informs Buildroot which package needs to be included in the compilation using BR2_PACKAGE_** as a switch. The switch is assigned in the OK113I_linux_defconfig configuration file located in buildroot/buildroot-201902/configs/, similar to the Kconfig file in the kernel. For example: The calling relationship is written in the package/Config.in source "package/mosquitto/Config.in"; The BR2_PACKAGE_MOSQUITTO information is written in package/mosquitto/Config.in. ② demo.mk This file declares some package information, such as the version of the specified package, the package source download link, the storage path, the compilation rules, the toolchain, and so on. When compiling, the source code package will be downloaded to the specified path according to the download address and version in this file, and then compiled and copied, which is equivalent to a Makefile file. For example: mosquitto.mk The software package version and download address are written at the beginning of the file, and we can find the corresponding version of the software package by visiting the address in the browser. When compiling, if the file is not in the source code, it will be downloaded automatically. mosguitto-1.5.8.tar.gz mosguitto-1.5.8.tar.gz.asc In addition, other compilation rules are defined in the file, including the file copy path and so on. ③ demo.hash This file will record the hash check code of the downloaded source code package to prevent errors in the downloaded source code package. ④ demo.service This file serves systemd. After systemd is started, the demo service will be started according to this file. The source path and installed path of this file will be specified in the demo.mk. The OK113i-S development board does not currently use this service, so it can be left alone. ⑤ S50demo It is a demo.service, which is the boot service type currently used by the OK113i-S development board. Among the above 5 kinds of files Config.in and demo.mk is required, and other files can be configured as needed. The specific configuration contents can be written according to the existing documents or the actual situation. Mosquitto already has a written configuration file, which can be used directly. Generally, the configuration file is provided by the maintainer or developer of the project. If there is no configuration file in the file you migrate, you can refer to the existing configuration file to write one. Part 2 Execution We need to generate in buildroot/buildroot-201902 make OK113I_linux_defconfig And then generate in make menuconfig ARCH=arm. Configure in the graphical configuration interface (if an error is reported during execution, please install the command first: sudo apt-get update and sudo apt-get install ncurses). After entering the graphic configuration interface, enter "/" to search for the function to be configured. As shown in the figure, search for the information seen by Mosquitto. Select "1" according to the prompt to enter the target option. Press "Space" to save and exit. After the configuration is complete, execute. /build.sh in the current directory to compile the file system, and then check if there are already corresponding files in the files system. (Note: If there is no network, the source code package cannot be automatically downloaded during compilation. You need to manually download the source code package from the download address and put it in the source code package storage path.) Part 3 Test verification of MQTT Modify the /etc/mosquitto/mosquitto.conf file of the OK113i-S development board, add a line user root after #user mosquitto, and reboot the service or development board. You can also kill the process and re-execute it: /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf Then test—— Subscribe to the test topic: mosquitto_sub -t test & Release the test topic: mosquitto_pub -t test -m "hello world" If you can see the word hello world returned, it means that the migration is successful. Above is the method to port MQTT protocol in Buildroot of Forlinx Embedded OK113i-S development board for engineers in front of the screen.
-
- mqtt protocol
- buildroot
-
(and 3 more)
Tagged with:
-
On November 7th, 2023, Forlinx Embedded launched the Debian 11 system for the first time on their development board, OK3568-C/OK3568J-C, which is based on the RK3568 chipset. Forlinx Embedded officially supports the Debian 11 system on the OK3568-C/OK3568J-C platform. In the field of embedded development, stability and richness are crucial factors. The RK3568, as Forlinx's flagship embedded product, has high performance, low power consumption, and rich interface functions, making it appreciated by industry users. Debian 11 is a stable, reliable, and open-source operating system, which provides a powerful foundation for the OK3568-C. Debian 11 has undergone rigorous testing and validation to ensure system stability, so there is no need to worry about unexpected crashes or data loss. Moreover, Debian 11 has a vast software library, which enables developers to easily install and update required software packages. By combining the advantages of the OK3568-C hardware with Debian 11, developers can fully leverage the diversity of the 3568 hardware interfaces while enjoying the stability and open-source nature of Debian 11. Indeed, this strong combination provides an ideal environment for various embedded projects. When it comes to stability, free and open source, versatility, and vast software libraries, no operating system can rival Debian. Debian is a truly free operating system, and its strength is not only reflected in technology, but also in its active community. Stable Value: Debian stands out for its world-renowned stability. Whether you are building critical business systems or looking for reliable daily desktops, Debian is always the best choice. Debian 11 has undergone rigorous testing and validation to ensure system stability, so there is no need to worry about unexpected crashes or data loss. Free and Open Source: Debian adheres to the concept of free and open source, allowing you to freely use, modify, and share it. This is a truly free operating system. Not only can Debian be obtained for free, but you can also freely view, edit, and distribute its source code. Huge Software Library: Debian has a vast and diverse software library that covers almost any application and tool you can imagine. From office software to entertainment applications, server services to programming tools, Debian has everything in its software library. Not only that, it also provides an easy-to-use package management system, allowing you to easily install and update software. Multi-architecture Support: Debian supports multiple hardware architectures, including x86, ARM, PowerPC, MIPS, etc., making it suitable for various devices and systems. Whether you use a desktop, laptop, server, or embedded device, Debian can provide the ideal solution. Active Community Support: The Debian community is a vibrant place where you can find help, advice, and resources. Both novice and experienced users can participate in the community and receive support. Originally published at www.forlinx.net.
-
I have a question, there are so many development boards in this world, banana pi, raspberry pi and so on, could you pls tell me more about these boards? What's your opinion?
-
- banana pi
- electronics
-
(and 2 more)
Tagged with: