برق و الکترونیک *دانلود پروژه رایگان
https://github.com/xboot/xfel
نسخه تست شده قابل استفاده برای تراشه t113-s3 👍
## 🧠 آموزش کاربردی binwalk در پروژه T113-S3
📌 موضوع: بررسی محتوای فایلهای ایمیج در پروژههای لینوکسی با چیپ Allwinner T113-S3
🛠 ابزار کلیدی:
🎯 هدف: فهمیدن اینکه داخل فایلهای
---
### 🔍 binwalk چیه؟
- آیا کرنل (
- آیا فایلسیستم مثل
- آیا
- آیا ایمیج ناقصه یا با تنظیمات برد ناسازگاره؟
---
### ⚙️ نصب binwalk
---
### 🧪 مثال واقعی از پروژه T113-S3
فرض کن یه فایل
📥 خروجی نمونه:
✅ یعنی کرنل داخلشه
❌ ولی اگه ramdisk فقط چند بایت باشه، یعنی rootfs نداره → سیستم بعد از OP-TEE گیر میکنه
---
یا مثلاً میخوای ببینی داخل ایمیج نهایی
📥 خروجی نمونه:
❗️ ولی اگه توی
---
### 💡 نکته حرفهای
با binwalk میتونی قبل از فلش کردن ایمیج مطمئن بشی که:
- فایلها کاملن
- نوع فایلسیستم با تنظیمات
- کرنل و dtb داخل
- و هیچ چیز حیاتی مثل
---
### 🎯 نتیجهگیری
در پروژههای embedded مثل T113-S3، binwalk یه ابزار حیاتی برای دیباگ بوته. اگه سیستم بعد از OP-TEE گیر میکنه یا کرنل بالا نمیاد، اولین چیزی که باید چک کنی همین binwalkه.
بزن binwalk رو نصب کن، ایمیج رو باز کن، و ببین واقعاً چی داخلشه—قبل از اینکه وقتت رو با فلشهای تکراری تلف کنی 😎
📌 موضوع: بررسی محتوای فایلهای ایمیج در پروژههای لینوکسی با چیپ Allwinner T113-S3
🛠 ابزار کلیدی:
binwalk
🎯 هدف: فهمیدن اینکه داخل فایلهای
.img
مثل boot.img
یا tina_t113-mq_r_uart3.img
دقیقاً چی هست و چرا سیستم ممکنه بوت نشه---
### 🔍 binwalk چیه؟
binwalk
یه ابزار قدرتمند برای آنالیز فایلهای باینریه. مخصوصاً وقتی با ایمیجهای سیستمعامل، بوتلودر، یا فایلسیستمهای فشرده سروکار داریم. باهاش میتونیم بفهمیم:- آیا کرنل (
zImage
) داخل ایمیج هست؟- آیا فایلسیستم مثل
SquashFS
, UBIFS
, یا YAFFS
وجود داره؟- آیا
ramdisk
یا initrd
داخل boot.img
هست یا نه؟- آیا ایمیج ناقصه یا با تنظیمات برد ناسازگاره؟
---
### ⚙️ نصب binwalk
sudo apt update
sudo apt install binwalk
---
### 🧪 مثال واقعی از پروژه T113-S3
فرض کن یه فایل
boot.img
ساختی و میخوای ببینی آیا کرنل و ramdisk داخلش هست یا نه:binwalk -e boot.img
📥 خروجی نمونه:
0x0 Android bootimg, kernel size: 4247424 bytes
0x824 Linux kernel ARM boot executable zImage
0x460C gzip compressed data
✅ یعنی کرنل داخلشه
❌ ولی اگه ramdisk فقط چند بایت باشه، یعنی rootfs نداره → سیستم بعد از OP-TEE گیر میکنه
---
یا مثلاً میخوای ببینی داخل ایمیج نهایی
tina_t113-mq_r_uart3.img
چه فایلسیستمی هست:binwalk -e tina_t113-mq_r_uart3.img
📥 خروجی نمونه:
0x7A3400 Squashfs filesystem, version 4.0
❗️ ولی اگه توی
env.txt
نوشته باشی `rootfstype=ubifs`، این mismatch باعث میشه کرنل نتونه rootfs رو mount کنه → بوت ناقص---
### 💡 نکته حرفهای
با binwalk میتونی قبل از فلش کردن ایمیج مطمئن بشی که:
- فایلها کاملن
- نوع فایلسیستم با تنظیمات
env.cfg
هماهنگه- کرنل و dtb داخل
boot.img
هستن- و هیچ چیز حیاتی مثل
sboot
یا ramdisk
جا نیفتاده---
### 🎯 نتیجهگیری
در پروژههای embedded مثل T113-S3، binwalk یه ابزار حیاتی برای دیباگ بوته. اگه سیستم بعد از OP-TEE گیر میکنه یا کرنل بالا نمیاد، اولین چیزی که باید چک کنی همین binwalkه.
بزن binwalk رو نصب کن، ایمیج رو باز کن، و ببین واقعاً چی داخلشه—قبل از اینکه وقتت رو با فلشهای تکراری تلف کنی 😎
🎓 تفاوت nand_root در لینوکسهای نهفته مثل Tina Linux
اگه با بردهایی مثل T113-S3 کار میکنی، احتمالاً توی فایل env یا bootargs دیدی که بعضیها نوشتن:
و بعضیها هم:
🤔 خب فرق این دو تا چیه؟ کدومش رو باید استفاده کنیم؟
---
🔹 ubiblock0_5
این یه دیوایس بلوکمحور هست که از volume شماره ۵ در UBI ساخته شده.
📦 مناسب برای فایلسیستمهای فقط خواندنی مثل
✅ وقتی rootfs از نوع squashfs باشه، باید از این استفاده کنی
---
🔹 ubi0_5
این فقط یه volume منطقی در سیستم UBI هست
📝 مناسب برای فایلسیستمهای قابل نوشتن مثل
✅ وقتی میخوای rootfs قابل نوشتن باشه، باید از این استفاده بشه
---
📌 پس انتخاب درست بستگی به نوع فایلسیستم rootfs داره:
- اگه
- اگه
---
💡 نکته حرفهای:
برای دیدن نوع فایلسیستم فعلی، توی ترمینال برد بزن:
و دنبال
اگه با بردهایی مثل T113-S3 کار میکنی، احتمالاً توی فایل env یا bootargs دیدی که بعضیها نوشتن:
nand_root=/dev/ubiblock0_5
و بعضیها هم:
nand_root=ubi0_5
🤔 خب فرق این دو تا چیه؟ کدومش رو باید استفاده کنیم؟
---
🔹 ubiblock0_5
این یه دیوایس بلوکمحور هست که از volume شماره ۵ در UBI ساخته شده.
📦 مناسب برای فایلسیستمهای فقط خواندنی مثل
squashfs
یا cramfs
✅ وقتی rootfs از نوع squashfs باشه، باید از این استفاده کنی
---
🔹 ubi0_5
این فقط یه volume منطقی در سیستم UBI هست
📝 مناسب برای فایلسیستمهای قابل نوشتن مثل
ubifs
✅ وقتی میخوای rootfs قابل نوشتن باشه، باید از این استفاده بشه
---
📌 پس انتخاب درست بستگی به نوع فایلسیستم rootfs داره:
- اگه
rootfstype=squashfs
باشه → بنویس nand_root=/dev/ubiblock0_5
- اگه
rootfstype=ubifs
باشه → بنویس nand_root=ubi0_5
---
💡 نکته حرفهای:
برای دیدن نوع فایلسیستم فعلی، توی ترمینال برد بزن:
cat /proc/cmdline
و دنبال
rootfstype=
بگرد🧠 آموزش ذخیرهسازی تنظیمات در برد T113-S3 با استفاده از UDISK
اگه با بردهای نهفته مثل T113-S3 کار میکنی و سیستمعاملت با Tina Linux راهاندازی شده، حتماً برات پیش اومده که بخوای تنظیمات برنامهات رو یه جایی ذخیره کنی که بعد از ریست شدن برد هم باقی بمونه. چون فایلسیستم rootfs معمولاً از نوع squashfs هست و فقط خواندنیه، نمیتونی تنظیمات رو اونجا بنویسی. ولی یه راه حرفهای و مطمئن وجود داره: استفاده از پارتیشن UDISK
---
📦 UDISK چیه و چرا مناسب ذخیرهسازیه؟
در فایل پارتیشنبندی
و توی ترمینال برد میتونی با این دستور ببینی که mount شده یا نه:
اگه خروجی چیزی مثل این بود، یعنی آمادهی استفادهست:
---
📝 ساخت فایل تنظیمات تکخطی
برای ساخت یه فایل ساده که یه مقدار تنظیمات داخلش باشه، این دستور رو بزن:
این فایل داخل مسیر
برای دیدن محتواش:
---
📄 ساخت فایل تنظیمات چندخطی
اگه بخوای چند خط تنظیمات داخل فایل بذاری، چند روش مختلف داری. اینجا چندتا از راحتترینهاش رو میگم:
🔹 روش اول: استفاده از echo با >>
🔹 روش دوم: استفاده از heredoc
🔹 روش سوم: استفاده از vi یا nano (اگر نصب باشه)
بعد از باز شدن ویرایشگر، متن رو بنویس و با
---
🔁 تست بعد از ریست برد
بعد از ریست شدن کامل برد، دوباره وارد ترمینال بشو و بزن:
اگه محتوا باقی مونده بود، یعنی تنظیماتت بهدرستی ذخیره شدن و قابل استفاده هستن
---
🔐 نکته امنیتی
اگه تنظیماتت شامل رمز یا اطلاعات حساس هستن، بهتره دسترسی فایل رو محدود کنی:
---
🎯 جمعبندی کاربردی
پارتیشن UDISK بهترین جا برای ذخیرهسازی تنظیمات، لاگها، و دادههای دائمی در بردهای T113-S3 هست. با چند دستور ساده میتونی فایل بسازی، محتوا بنویسی، و بعد از هر بوت دوباره بخونی. این روش کاملاً پایدار و امنه و توی پروژههای صنعتی هم استفاده میشه
اگه با بردهای نهفته مثل T113-S3 کار میکنی و سیستمعاملت با Tina Linux راهاندازی شده، حتماً برات پیش اومده که بخوای تنظیمات برنامهات رو یه جایی ذخیره کنی که بعد از ریست شدن برد هم باقی بمونه. چون فایلسیستم rootfs معمولاً از نوع squashfs هست و فقط خواندنیه، نمیتونی تنظیمات رو اونجا بنویسی. ولی یه راه حرفهای و مطمئن وجود داره: استفاده از پارتیشن UDISK
---
📦 UDISK چیه و چرا مناسب ذخیرهسازیه؟
در فایل پارتیشنبندی
sys_partition_nor.fex
معمولاً یه پارتیشن به نام UDISK
تعریف میشه که روی فلش NAND سوار میشه و با فایلسیستم ubifs
به صورت خواندن/نوشتن mount میشه. مسیرش معمولاً اینه:/mnt/UDISK
و توی ترمینال برد میتونی با این دستور ببینی که mount شده یا نه:
mount | grep UDISK
اگه خروجی چیزی مثل این بود، یعنی آمادهی استفادهست:
/dev/ubi0_8 on /mnt/UDISK type ubifs (rw,...)
---
📝 ساخت فایل تنظیمات تکخطی
برای ساخت یه فایل ساده که یه مقدار تنظیمات داخلش باشه، این دستور رو بزن:
mkdir -p /mnt/UDISK/configs
echo "mode=debug" > /mnt/UDISK/configs/myapp.conf
این فایل داخل مسیر
/mnt/UDISK/configs
ساخته میشه و بعد از ریست شدن برد هم باقی میمونهبرای دیدن محتواش:
cat /mnt/UDISK/configs/myapp.conf
---
📄 ساخت فایل تنظیمات چندخطی
اگه بخوای چند خط تنظیمات داخل فایل بذاری، چند روش مختلف داری. اینجا چندتا از راحتترینهاش رو میگم:
🔹 روش اول: استفاده از echo با >>
echo "wifi_ssid=BraveNet" >> /mnt/UDISK/configs/myapp.conf
echo "wifi_pass=12345678" >> /mnt/UDISK/configs/myapp.conf
echo "mode=production" >> /mnt/UDISK/configs/myapp.conf
🔹 روش دوم: استفاده از heredoc
cat <<EOF > /mnt/UDISK/configs/myapp.conf
wifi_ssid=BraveNet
wifi_pass=12345678
mode=production
EOF
🔹 روش سوم: استفاده از vi یا nano (اگر نصب باشه)
vi /mnt/UDISK/configs/myapp.conf
بعد از باز شدن ویرایشگر، متن رو بنویس و با
ESC
و :wq
ذخیره کن---
🔁 تست بعد از ریست برد
بعد از ریست شدن کامل برد، دوباره وارد ترمینال بشو و بزن:
cat /mnt/UDISK/configs/myapp.conf
اگه محتوا باقی مونده بود، یعنی تنظیماتت بهدرستی ذخیره شدن و قابل استفاده هستن
---
🔐 نکته امنیتی
اگه تنظیماتت شامل رمز یا اطلاعات حساس هستن، بهتره دسترسی فایل رو محدود کنی:
chmod 600 /mnt/UDISK/configs/myapp.conf
---
🎯 جمعبندی کاربردی
پارتیشن UDISK بهترین جا برای ذخیرهسازی تنظیمات، لاگها، و دادههای دائمی در بردهای T113-S3 هست. با چند دستور ساده میتونی فایل بسازی، محتوا بنویسی، و بعد از هر بوت دوباره بخونی. این روش کاملاً پایدار و امنه و توی پروژههای صنعتی هم استفاده میشه
🔐 آموزش سطح دسترسی فایلها در برد T113-S3 با لینوکس Tina
وقتی با بردهای نهفته مثل T113-S3 کار میکنی، خیلی مهمه بدونی چطور فایلهایی مثل تنظیمات یا لاگها رو طوری بسازی که فقط برنامهات بتونه بخونه یا تغییر بده. مخصوصاً وقتی از پارتیشن UDISK استفاده میکنی که قابل نوشتن و پایدار هست، باید حواست به امنیت فایلها باشه
لینوکس برای کنترل دسترسی به فایلها از سیستم permission استفاده میکنه. هر فایل سه سطح دسترسی داره: مالک فایل، گروه فایل، و سایر کاربران. هرکدوم از اینها میتونن اجازهی خواندن، نوشتن یا اجرا داشته باشن
مثلاً وقتی اینو میبینی:
یعنی مالک فایل میتونه بخونه و بنویسه، گروه فقط میتونه بخونه، و سایر کاربران هم فقط میتونن بخونن
برای تغییر این سطح دسترسی از دستور
این دستور یعنی فقط مالک فایل میتونه بخونه و بنویسه، و هیچکس دیگهای نمیتونه فایل رو ببینه یا تغییر بده
عدد 600 یعنی:
مالک: خواندن و نوشتن
گروه: هیچ دسترسی
سایر کاربران: هیچ دسترسی
اگه فایل تنظیماتت شامل رمز وایفای یا اطلاعات حساس باشه، این سطح دسترسی خیلی مهمه چون جلوی دسترسی ناخواسته رو میگیره
برای دیدن سطح دسترسی فعلی فایل، اینو بزن:
خروجی باید چیزی مثل این باشه:
یعنی فقط کاربر root میتونه فایل رو بخونه و بنویسه
اگه برنامهات با کاربر دیگهای اجرا میشه، باید مالک فایل رو تغییر بدی. مثلاً:
با این تنظیمات، کاربر
این روشها باعث میشن فایلهای تنظیماتت هم امن باشن، هم پایدار، و هم فقط توسط برنامهات قابل استفاده باشن
وقتی با بردهای نهفته مثل T113-S3 کار میکنی، خیلی مهمه بدونی چطور فایلهایی مثل تنظیمات یا لاگها رو طوری بسازی که فقط برنامهات بتونه بخونه یا تغییر بده. مخصوصاً وقتی از پارتیشن UDISK استفاده میکنی که قابل نوشتن و پایدار هست، باید حواست به امنیت فایلها باشه
لینوکس برای کنترل دسترسی به فایلها از سیستم permission استفاده میکنه. هر فایل سه سطح دسترسی داره: مالک فایل، گروه فایل، و سایر کاربران. هرکدوم از اینها میتونن اجازهی خواندن، نوشتن یا اجرا داشته باشن
مثلاً وقتی اینو میبینی:
-rw-r--r--
یعنی مالک فایل میتونه بخونه و بنویسه، گروه فقط میتونه بخونه، و سایر کاربران هم فقط میتونن بخونن
برای تغییر این سطح دسترسی از دستور
chmod
استفاده میشه. مثلاً:chmod 600 /mnt/UDISK/configs/myapp.conf
این دستور یعنی فقط مالک فایل میتونه بخونه و بنویسه، و هیچکس دیگهای نمیتونه فایل رو ببینه یا تغییر بده
عدد 600 یعنی:
مالک: خواندن و نوشتن
گروه: هیچ دسترسی
سایر کاربران: هیچ دسترسی
اگه فایل تنظیماتت شامل رمز وایفای یا اطلاعات حساس باشه، این سطح دسترسی خیلی مهمه چون جلوی دسترسی ناخواسته رو میگیره
برای دیدن سطح دسترسی فعلی فایل، اینو بزن:
ls -l /mnt/UDISK/configs/myapp.conf
خروجی باید چیزی مثل این باشه:
-rw------- 1 root root 78 Sep 8 10:59 myapp.conf
یعنی فقط کاربر root میتونه فایل رو بخونه و بنویسه
اگه برنامهات با کاربر دیگهای اجرا میشه، باید مالک فایل رو تغییر بدی. مثلاً:
chown myuser:myuser /mnt/UDISK/configs/myapp.conf
chmod 640 /mnt/UDISK/configs/myapp.conf
با این تنظیمات، کاربر
myuser
میتونه فایل رو بخونه، ولی بقیه نمیتونناین روشها باعث میشن فایلهای تنظیماتت هم امن باشن، هم پایدار، و هم فقط توسط برنامهات قابل استفاده باشن
final squashfs.rar
15.5 KB
فایلهای با تنظیمات خاص برای بوت لینوکس از روی نند فلش برای روت فایل سیستم در حالت فقط خواندنی squashfs برای t113-s3 در لینوکسی تینا تست شده و کاملا جواب میدهد منتها تنظیمات خاص مثل ترمینال و دیوایس تری را خودتان چک کنید که با برد شما هماهنگ باشد مناسب نند فلش W25N01GVZEIG
tina_t113-mq_r_uart3_nand.img
34.8 MB
ایمیج تولید شده برای ریختن روی نند فلش W25N01GVZEIG با تنظیمات squashfs برای روت فایل سیستم (کاملا تست شده )
برق و الکترونیک *دانلود پروژه رایگان
https://youtube.com/shorts/LUT8V3hTBUU?si=-x8zu7-uklcFB65O
مجموعه پی سی بی با فرمت التیوم
برق و الکترونیک *دانلود پروژه رایگان
https://youtu.be/foMl1BnoK0Y?si=lmJ_uGJqWcn57ksi
هوش مصنوعی علی بابا برای برنامه نویسی هم خیلی عالی جواب میدهد حتما استفاده کنید👍