Set up roc-rk3328-cc to boot from usb

On Linux, setting up the USB drive with an ext4 file system is straightforward. Here are the steps to format and set up the USB drive:

1. Identify the USB Drive

  • Insert the USB drive into your Linux machine.

  • Open a terminal and use the following command to list all connected drives:

    
    lsblk
    
  • Identify the USB drive from the output (it’s often listed as /dev/sdb or /dev/sdc, but it could vary). Be careful to choose the correct drive to avoid overwriting other data.

2. Unmount the USB Drive (if Mounted)

  • If the USB drive is already mounted, you’ll need to unmount it before formatting:

    sudo umount /dev/sdX1
    

Replace /dev/sdX1 with your USB drive’s partition (e.g., /dev/sdb1).

3. Create a New Partition Table (Optional)

  • If you want a fresh start with no existing partitions, create a new partition table:

    sudo parted /dev/sdX mklabel msdos
    

Replace /dev/sdX with the device name (e.g., /dev/sdb).

4. Create a New ext4 Partition

  • Now, create a new partition on the USB drive and format it as ext4. This example uses the mkfs (make filesystem) command:

    sudo mkfs.ext4 /dev/sdX1
    

Replace /dev/sdX1 with your USB drive’s partition name.

5. Label the Partition (Optional)

  • To give the partition a label (for easy identification), you can use the e2label command:

    sudo e2label /dev/sdX1 YourLabel
    

Replace YourLabel with any name you want for the USB drive.

6. Mount the USB Drive to Verify (Optional)

  • To confirm that everything is set up, create a temporary mount point and mount the USB drive:

    sudo mkdir /mnt/usb
    sudo mount /dev/sdX1 /mnt/usb
    
  • Check that you can read and write to the USB by navigating to /mnt/usb.

  1. Unmount the USB Drive

    • After verifying, unmount the USB:

      sudo umount /mnt/usb
      

Your USB drive is now ready with an ext4 file system and can be used to boot or store files as needed. Let me know if you need further clarification on any steps!

 

once done use balena etcher

to copy current micro-usb onto new usb.

then put that micr-usb back in mchinae and flash the new bootloader onto it –

 

Yes, for your ROC-RK3328-CC board, you’ll need to specify it in the commands. The instructions provided show how to flash the bootloader for the aml-s905x-cc, but they can be adapted for your board.

Here’s how to proceed:

  1. Clone the Libretech Flash Tool (if you haven’t already):

    git clone https://github.com/libre-computer-project/libretech-flash-tool.git
    cd libretech-flash-tool
    
  2. List Available Boards:

    • To verify the board identifier for your ROC-RK3328-CC, run:

      ./lft.sh board-list
      

    You should see roc-rk3328-cc in the list, confirming it’s recognized by the flash tool.

  3. Check Device Path:

    • Run the following to see available devices:

      ./lft.sh dev-list
      

    Identify the path (e.g., /dev/sdb) for your microSD card, where the bootloader will be flashed.

  4. Download and Flash the Bootloader:

    • Replace aml-s905x-cc with roc-rk3328-cc in the command below, and use the correct device path for your microSD card (e.g., /dev/sdb):

      sudo ./lft.sh bl-flash roc-rk3328-cc /dev/sdb
      

    This command will:

    • Download the bootloader for roc-rk3328-cc.
    • Flash it to the specified device.
  5. Confirm the Command Execution:

    • The script will prompt you to confirm flashing. Enter y to proceed, and it should write the bootloader to the microSD card.

After flashing, you can leave the microSD card in the device with the USB containing your OS for booting. Let me know if any part of the process needs more clarification!


`

Other ways to clone / backup

To create a backup of your current configuration before proceeding with any further upgrades, you have a few reliable options. Since you’re using Ubuntu, here’s a safe approach to back up your current setup:

1. Create a Full Disk Image with dd

  • You can use the dd command to make an exact disk image. This is a bit-for-bit copy and will retain everything, including system configurations and installed software.
  • Warning: Make sure to have an external storage location with enough space (equal to or greater than your current drive size).

sudo dd if=/dev/sdX of=/path/to/backup.img bs=4M status=progress

Replace /dev/sdX with your main drive (likely /dev/sda or /dev/mmcblk0 for some SBCs) and /path/to/backup.img with the location to save your image. Be cautious with dd, as it can overwrite data if directed incorrectly.

2. Create a Backup with rsync

  • If you prefer a more flexible option, use rsync to create a backup of all essential files and configurations. This can back up critical directories, like /etc, /home, and others, to a remote location or external drive.

sudo rsync -aAXv / /path/to/backup/location --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}

This command will avoid system directories that don’t need backup and would be regenerated on boot.

3. Use a Tool Like Clonezilla

  • If you want a full GUI-based backup tool, you can create a bootable Clonezilla USB drive, boot into it, and create a full image of your system drive. Clonezilla is highly reliable for system duplication and restoration.

This way, you’ll have a stable backup of your configuration. Let me know if you’d like more details on any specific approach!

The Issues

To wipe the partitions on the USB drive, you can use the fdisk tool to delete all existing partitions and create a clean slate. Here’s how to do it:

1. Open fdisk for the USB Drive

  • Run fdisk with the USB drive’s device path (e.g., /dev/sda). Be careful to select the correct drive to avoid data loss on other devices.

    
    sudo fdisk /dev/sda
    

2. Delete Each Partition

  • Once in fdisk, you’ll be in interactive mode. Type p to print the current partition table and verify the partitions.

  • To delete each partition:

    1. Type d and press Enter.
    2. If prompted, choose the partition number (e.g., 1 for /dev/sda1).
    3. Repeat for each partition (sda2, sda3, etc.) until all partitions are deleted.

3. Write Changes and Exit

  • After deleting all partitions, type w to write the changes to the disk and exit fdisk.

4. Verify the Drive is Wiped

  • Use lsblk to confirm that /dev/sda has no partitions listed under it.

5. (Optional) Create a New Single Partition

  • If you want to create a single partition:

    
    sudo fdisk /dev/sda
    
  • Type n to create a new partition, select primary (p), accept the default start and end sectors for full disk usage, then write the changes (w).

This will give you a clean, unformatted drive ready to be set up with the ext4 file system or used for cloning. Let me know if you run into any issues with these steps!

 

 

 

You said:

adn why did it do this sudo umount /dev/sda1 umount: /dev/sda1: not mounted.

 

ChatGPT said:

ChatGPT

The message umount: /dev/sda1: not mounted means that /dev/sda1 wasn’t currently mounted, so there was nothing to unmount. This can happen if:

  • The Partition Was Never Mounted: Sometimes, when you insert a new or unformatted drive, it may not automatically mount, especially if the partitions aren’t recognized.
  • The Partition Was Automatically Unmounted: Some tools or operations, like fdisk, may automatically unmount a drive, especially after partition changes.

Confirm Mounted Partitions Before Unmounting

To see what’s currently mounted, you can use:


lsblk

This will show which partitions are mounted under their respective mount points. Alternatively:


mount | grep sda

This command lists only the partitions on /dev/sda that are mounted, so you can see what, if anything, needs to be unmounted.

You can then proceed with wiping or modifying the partitions, knowing they’re ready to be altered without further unmounting. Let me know if you need help with the next steps!

 

 

 

You said:

ubuntu@ubuntu-22:~ so I guess i dont' ahve to unmount them?

 

ChatGPT said:

ChatGPT

That's correct! Since the mount | grep sda command returned nothing, it means none of the partitions on /dev/sda are currently mounted. You can proceed directly with wiping or modifying the partitions on the USB drive without needing to unmount anything.

Now, you can use fdisk to delete the partitions as outlined previously:

  1. Start fdisk for the USB drive:

    
    sudo fdisk /dev/sda
    
  2. Follow the steps to delete each partition:

    • Type d to delete a partition.
    • Choose the partition number when prompted (repeat for each partition).
  3. Write changes by typing w to save and exit fdisk.

Afterward, you’ll have a clean USB drive, ready for formatting or cloning. Let me know if you have further questions!

 

 

 

You said:

roc-rk3328-cc roc-rk3328-cc-v2 there are two of them in ./lft.sh board-list

 

ChatGPT said:

ChatGPT

The two options, roc-rk3328-cc and roc-rk3328-cc-v2, represent two versions of the ROC-RK3328-CC board. To ensure compatibility, it’s essential to select the correct version of the board for flashing the bootloader.

Here's how to determine which one to use:

  1. Check Your Board Version:

    • Look for any labels or printed text on the board itself. Often, version information is printed directly on the board or in the documentation that came with it.
  2. If Unsure, Start with roc-rk3328-cc:

    • If there’s no clear version marked, you could start with roc-rk3328-cc, as it’s usually the baseline version.
    • If it doesn’t work, you can reflash with roc-rk3328-cc-v2.
  3. Flashing with libretech-flash-tool:

    • Use the version you’ve identified as follows:

      
      sudo ./lft.sh bl-flash roc-rk3328-cc /dev/sdX
      

    or, if you have the v2 version:

    
    sudo ./lft.sh bl-flash roc-rk3328-cc-v2 /dev/sdX
    

    Replace /dev/sdX with the actual path to your microSD card.

If you’re able to identify the board version, this should ensure compatibility with the bootloader. Let me know if you run into any issues or need further help!

 

 

 

You said:

target disk sdc 8:32 1 29.8G 0 disk ├─sdc1 8:33 1 256M 0 part └─sdc2 8:34 1 29.5G 0 part

 

ChatGPT said:

ChatGPT

To prepare your target disk (/dev/sdc) by removing its existing partitions, follow these steps:

Steps to Wipe the Target Disk (/dev/sdc)

  1. Open fdisk for /dev/sdc:

    • Start by opening fdisk on the target disk:

      
      sudo fdisk /dev/sdc
      
  2. Delete Each Partition:

    • Once in fdisk, type p to print the partition table and confirm the existing partitions (sdc1 and sdc2).

    • To delete each partition:

      • Type d and press Enter.
      • If prompted, enter the partition number (1 for /dev/sdc1, and then repeat for 2).
    • Repeat this step until all partitions are deleted.

  3. Write Changes and Exit:

    • After deleting all partitions, type w to write the changes and exit fdisk.
  4. Verify the Drive is Clean:

    • Run lsblk again to confirm that /dev/sdc no longer shows any partitions:

      
      lsblk
      

Your target disk /dev/sdc is now wiped and ready for you to format, partition, or use as needed. Let me know if you have further questions!

 

 

 

You said:

sudo ./lft.sh bl-flash roc-rk3328-cc /dev/sdc BOOTLOADER_flash: DEVICE /dev/sdc is not a valid target.

 

ChatGPT said:

ChatGPT

The error DEVICE /dev/sdc is not a valid target suggests that libretech-flash-tool might have specific requirements for the target device. Here are some steps to troubleshoot and ensure you're using the correct target:

  1. Verify Device Path:

    • Make sure /dev/sdc is indeed the correct path for the target microSD card.
    • Use lsblk to confirm that /dev/sdc corresponds to the correct device and is not mounted.
  2. Check Supported Devices:

    • Run ./lft.sh dev-list to see the list of devices that libretech-flash-tool detects as valid targets. This command will display the devices the tool recognizes, and you can use the correct one as your target.
    
    ./lft.sh dev-list
    
  3. Run with Root Privileges:

    • Ensure you're running the bl-flash command with sudo to avoid permission issues.
  4. Retry the Flash Command:

    • If /dev/sdc is listed as a valid device, retry the command:

      
      sudo ./lft.sh bl-flash roc-rk3328-cc /dev/sdc
      

If /dev/sdc is still not recognized as a valid target, you may need to format it or reinitialize it with fdisk or parted before running the tool again. Let me know if this helps or if further issues persist!

 

 

 

You said:

 

ChatGPT said:

ChatGPT

Since ./lft.sh dev-list shows sda, sdb, and sdc as recognized devices, you should be able to use /dev/sdc as the target for flashing. If libretech-flash-tool still reports /dev/sdc as an invalid target, try the following:

  1. Double-Check Permissions:

    • Make sure you are running the bl-flash command with sudo:

      
      sudo ./lft.sh bl-flash roc-rk3328-cc /dev/sdc
      
  2. Re-initialize the Disk with fdisk:

    • Sometimes, reinitializing the disk with a new partition table can help libretech-flash-tool recognize it correctly. Use fdisk to create a fresh partition table on /dev/sdc:

      
      sudo fdisk /dev/sdc
      
    • Inside fdisk, use:

      • o to create a new empty DOS partition table.
      • w to write the changes and exit.
  3. Retry the Flash Command:

    • After reinitializing the disk, try the flash command again:

      
      sudo ./lft.sh bl-flash roc-rk3328-cc /dev/sdc
      

If it still doesn’t work, you could try using another device as a workaround or check if libretech-flash-tool has specific requirements for empty disks. Let me know if this resolves the issue or if you need further guidance!

 

 

 

You said:

ubuntu@ubuntu-22:~/libretech-flash-tool

 

ChatGPT said:

ChatGPT

If libretech-flash-tool continues to report /dev/sdc as an invalid target, it might be due to specific requirements or restrictions within the tool itself. Here are some alternative approaches:

Alternative Approaches to Flash the Bootloader

1. Use dd Manually to Write the Bootloader

  • If you have the bootloader file for the ROC-RK3328-CC downloaded (e.g., /tmp/tmp.otrZBzPL4o or a similar temporary path), you can manually write it to /dev/sdc using dd:

    
    sudo dd if=/path/to/bootloader.img of=/dev/sdc bs=512 seek=1 status=progress
    
  • Replace /path/to/bootloader.img with the actual path to the bootloader file. The parameters bs=512 and seek=1 are typically used for bootloader flashing, but check any documentation for your device if you have it.

2. Reformat /dev/sdc as a Raw Device

  • Sometimes, libretech-flash-tool requires the device to be completely empty, without any existing partition table.

  • You can use wipefs to clear any filesystem signatures:

    
    sudo wipefs -a /dev/sdc
    
  • Then, retry the libretech-flash-tool command:

    
    sudo ./lft.sh bl-flash roc-rk3328-cc /dev/sdc
    

3. Try Using Another microSD Card (if Available)

  • If the current card is not being accepted, testing another microSD card (if you have one) could help identify if the issue is specific to the current card.

If libretech-flash-tool is still not cooperating, using dd manually is a reliable alternative. Let me know how it goes or if you encounter further issues!

 

 

 

You said:

we dont' ahve the boot loader – this wsa to put that on sdc – so download it ot my home?

 

ChatGPT said:

ChatGPT

Yes, if you don’t have the bootloader file yet, you can download it manually to your home directory and then use dd to write it to /dev/sdc. Here’s how to proceed:

1. Download the Bootloader File

You can download the bootloader for the ROC-RK3328-CC board directly from the Libre Computer Project’s repository. Use the following command to download it to your home directory:


wget -O ~/roc-rk3328-cc-bootloader.img https://boot.libre.computer/ci/roc-rk3328-cc

This command saves the bootloader file as roc-rk3328-cc-bootloader.img in your home directory.

2. Flash the Bootloader onto /dev/sdc Using dd

Once the bootloader file is downloaded, you can use dd to write it to the target microSD card (/dev/sdc). Run the following command:


sudo dd if=~/roc-rk3328-cc-bootloader.img of=/dev/sdc bs=512 seek=1 status=progress
  • if= specifies the input file (the bootloader you downloaded).
  • of= specifies the output device (your microSD card /dev/sdc).
  • bs=512 and seek=1 are standard parameters for bootloader flashing.
  • status=progress shows the progress of the command.

3. Verify the Flashing Process

After the dd command completes, you should see confirmation of bytes written. You can safely eject the microSD card and test it in your device to see if it boots correctly.

Scroll to Top