برق و الکترونیک *دانلود پروژه رایگان
Open in Telegram
2 293
Subscribers
No data24 hours
No data7 days
+330 days
Posts Archive
هوش مصنوعی علی بابا برای برنامه نویسی هم خیلی عالی جواب میدهد حتما استفاده کنید👍
ایمیج تولید شده برای ریختن روی نند فلش W25N01GVZEIG با تنظیمات squashfs برای روت فایل سیستم (کاملا تست شده )
فایلهای با تنظیمات خاص برای بوت لینوکس از روی نند فلش برای روت فایل سیستم در حالت فقط خواندنی squashfs برای t113-s3 در لینوکسی تینا تست شده و کاملا جواب میدهد منتها تنظیمات خاص مثل ترمینال و دیوایس تری را خودتان چک کنید که با برد شما هماهنگ باشد مناسب نند فلش W25N01GVZEIG
🔐 آموزش سطح دسترسی فایلها در برد T113-S3 با لینوکس Tina
وقتی با بردهای نهفته مثل 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 میتونه فایل رو بخونه، ولی بقیه نمیتونن
این روشها باعث میشن فایلهای تنظیماتت هم امن باشن، هم پایدار، و هم فقط توسط برنامهات قابل استفاده باشن🧠 آموزش ذخیرهسازی تنظیمات در برد T113-S3 با استفاده از UDISK
اگه با بردهای نهفته مثل 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 هست. با چند دستور ساده میتونی فایل بسازی، محتوا بنویسی، و بعد از هر بوت دوباره بخونی. این روش کاملاً پایدار و امنه و توی پروژههای صنعتی هم استفاده میشه🎓 تفاوت nand_root در لینوکسهای نهفته مثل Tina Linux
اگه با بردهایی مثل 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= بگرد## 🧠 آموزش کاربردی binwalk در پروژه T113-S3
📌 موضوع: بررسی محتوای فایلهای ایمیج در پروژههای لینوکسی با چیپ 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 رو نصب کن، ایمیج رو باز کن، و ببین واقعاً چی داخلشه—قبل از اینکه وقتت رو با فلشهای تکراری تلف کنی 😎