[SC206][Yocto] Add python3-pip package to image results in lack of recoveryfs.img

Hi @keven.wu-Q

Thanks for your quick response.

Will check and let you know.

Hi @keven.wu-Q

can you share detailed steps for the below because I am unaware of how to apply the patch and how to use makboot.

  1. Merge the patch and use makeboot to compile the kernel separately
  2. Use fastboot to flash the boot image and tz image (devcfg.mbn) to the system

I have both folders which you pointed out but how to setup it i don’t know how to set up it. Please share detailed steps for them.

Steps:
Put the patch in the qcm2290_linux_r60_r004 directory
cd qcm2290_linux_r60_r004
git apply 0001-enable-i2c.patch
source build.sh
makeboot
Then a boot image will be generated
Then use fastboot to flash the boot image

Hi @keven.wu-Q

Thanks for your quick response.

If I apply patch and recompile entire SDK and flash it again is it ok.
and how to add devcfg in build? Can explain what is devcfg.mbn

It is a tz image, you don’t need to pay attention to it, it belongs to the bp side code, we will not release the source code, we can only provide the image

Hi @keven.wu-Q

After applying patch still getting same issue. I am able to detect i2c

root@qrbx210-rbx:~# ls /sys/class/i2c-dev/
i2c-2
root@qrbx210-rbx:~# ls /sys/class/i2c-dev/i2c-2/
dev                   power/                waiting_for_supplier
device/               subsystem/                                                
name                  uevent                                                    
root@qrbx210-rbx:~# ls /sys/class/i2c-dev/i2c-2/dev                             
dev      device/                                                                
root@qrbx210-rbx:~# ls /sys/class/i2c-dev/i2c-2/device/                         
2-0014/               i2c-dev/              power/                              
2-0038/               name                  subsystem/                          
2-0045/               new_device            uevent                              
delete_device         of_node/              waiting_for_supplier                
root@qrbx210-rbx:~# ls /sys/class/i2c-dev/i2c-2/device/

But when I use below command I got error.

i2ctransfer -y 2 w1@14 0x00 r2

[  483.246060] i2c_geni 4a88000.i2c: IO lines in bad state, Power the slave
Error: Sending messages failed: No such device or address

Can you suggest what the possible reason is?


You just added the bus, the bus needs to be mounted on the device. In this section of the document, you need to add the device mounted on i2c-2 yourself.

Hi @keven.wu-Q

Currently, I don’t have an i2c driver ready.
so I added like this

sensirion@59{
compatible = “goodix,gt1x”;
reg=<0x59>;
};
By that I am able list my device.
root@qrbx210-rbx:~# /sys/bus/i2c/devices/
2-0014/ 2-0038/ 2-0045/ 2-0059/ i2c-2/

But when I try to send data on bus, I did not see any activity.

root@qrbx210-rbx:~# i2ctransfer -y 2 w1@0x59 0x00 r2
[ 1008.347948] i2c_geni 4a88000.i2c: IO lines in bad state, Power the slave
Error: Sending messages failed: No such device or address

Hi @keven.wu-Q

for my sensor currentlly i dont have driver. so I have add it like below

sensirion@59 {
compatible= "goodix,gt1x";
ref=<0x59>;
};

If that is not correct please suggest way by which I can solve issue.


This just ensures that the device can be mounted. From your results, the device is mounted.
According to the error, the possible reason is that the I2C device is not powered or not connected correctly:
The error message “IO lines in bad state, Power the slave” indicates that the I2C device may not be powered correctly or the connection is unstable.
You need to make sure that the target device is powered correctly. You can confirm this by measuring the voltage of the power pin with a multimeter.
If the device requires external power, make sure the power supply is connected and working properly.
Use an oscilloscope or logic analyzer to check the waveforms on the SCL and SDA signal lines to ensure that they comply with the I2C protocol

Hi @keven.wu-Q

Thanks for your quick response.

I checked that my device was correctly powered. But when I checked GPIO109 and GPIO110 I saw no activity.

You need to use an oscilloscope to test the pins.

Hi @keven.wu-Q

I checked GPIO109 and GPIO110 using DSO at a high sampling rate(~1.5MSa/s) but did not see any activity.

Hi @keven.wu-Q

Both GPIO’s voltage is 1.8v

Please provide us with the schematic diagram for further analysis

Hi @keven.wu-Q

I am attaching an image of the schematic for your reference.

I just confirmed that gpio109 and gpio110 can only be used for sensor_I2C and need drivers of adsp architecture. Even if you don’t use sensor, we don’t recommend you to use these two pins. You can use the same method to try other pins to see if they can be read using i2ctransfer.

@keven.wu-Q

Thanks for your reply.

I am working on MIC, and I am able to record audio, but the voice of the recorded audio is a little bit low. Is there any way to record audio with llital bit high volume?

We usually use the API to adjust the volume or modify the source code.


qaudio-api-test has an API to set the volume.