Sunday, March 28, 2010

To add a new user into Samba server

Have you ever had problem accessing a remote Linux machine from your windows, but Windows (XP/etc.) keeps asking for password (in other word, our account is always denied)? If you have, most likely is that our Linux server doesn't have the credentials to allow such username.  This occurs if we don't use PDC.

When you check the log (/var/log/samba/log.*), you would find something like this:


[2010/03/28 23:26:35,  1] smbd/service.c:676(make_connection_snum)
  create_connection_server_info failed: NT_STATUS_ACCESS_DENIED


The following simple command will create a new user in Samba server (e.g, "newuser" should match with the user in the Linux machine managed by PAM module).


mnt$ sudo smbpasswd -a -U newuser
New SMB password:
Retype new SMB password:
Added user newuser.

Now, from Windows explorer, we can just type "\\linuxserver\newuser".  It will then ask for password.  Use the password we entered above.

Tuesday, February 9, 2010

2010 Technologies for PC

Year 2010 or early 2011 will be interesting for PC buyers who are thinking to buy a new computer.  First of all, The USB 3.0 (SuperSpeed USB) will be available on many PC motherboards late this year.  Another thing is a series of new microprocessors from Intel which intergrate GPU in their dice.

Tuesday, February 2, 2010

iPad, iSlate, Kindle or what?

Apple iPad was introduced by its CEO, Steve Jobs, last week.  Despite its slickness and coolness, it still runs LED LCD screen.  The new HP Tablet to-be-released will also be running LCD.  Kindle from Amazon is in different direction.  It uses a like-book screen from E Ink ( a spun off of MIT-lab company), but it only is black-and-white (though can display different grades of grey) and too slow for most of computing works today, except for reading e-books.

There is a new startup founded by Mary Lou Epsen (does OLPC [One Laptop Per Child] project click you?) that goes to a little bit different.  Their claim the new LCD screen they are producing is a marriage between both worlds: the fast-response and colorful of LCD with reflection-light and power-saving of E-ink.

Looking at their website (http://www.pixelqi.com/about_us), most of their executives and board members hold Ph.D, either in optics, electrical engineering or physics.  Quite impressive.  The product they're making is called "Pixel Qi".

I was wondering why iPad doesn't use their screen for iPad? too expensive? I am eager to see a computer company to use their product for a power-efficient next generation tablet PC (I am no fan of Netbook.  I agreed with Mr. Jobs in his presentation that Netbook is just a slow smaller-than-laptop PC running memory-hungry Windows XP or not-that-popular Linux).

I was thinking to get this iPad, but after reading an article about this Pixel-Qi on Popular Science magazine, I am thinking to just wait and see how people's responses surface later on and will decide later.

If you're in the market ready to throw some money for a new netbook, be patient and wait for the getting-hotter market of tablet computers to select the best of the breed.

Thursday, January 28, 2010

How to Add HP-1020 on CUPS to Windows XP

This is the instruction to share a printer which is served by a Linux running CUPS server to Windows clients.

Assume the class name of the printer (as defined in CUPS) is HP_LaserJet_1020, and the Linux server's IP address is 192.168.0.11.

Add a network printer and in URI box, add: http://%3cip-address/ of cups server>/classes/<classname>

or, in this example:

http://192.168.0.11/classes/HP_LaserJet_1020

Thursday, December 17, 2009

LOGVECT.C

/*    RESET AND INTERRUPT VECTORS
    Modified-version of COSMIC-France's vector.c

    (c) M. Lutfi Shahab

    First creation : 8-Jan-1995

    Modifications :
        - Bugs found in Whitesmiths's vector.c (vector 9 contains Division
          by Zero).
        - RESET: Whitesmith always defined zk and sk by zero, but in this
          file, user can modified it.
        - exception handler now can only be a near address (appropiate use
          for EVB under MCX16 kernel operation).
 */
#define _WSC_
#include "mcx16.h"

extern SYSTABLE SysTable;
extern @port void  _stext(void);      /* startup routine */
extern @port void SCITrmIsr(void);  /* SCI transmit interrupt handler */
extern @port void SCIRcvIsr(void);  /* SCI receive interrupt handler */
extern @port void _BerrIsr(void);
extern @port void DivZero(void);
extern @port void IllegalOpcode(void);
extern @port void _default(void);
static @port void _dummit(void);


const struct reset {
    @far @port void (*rst)(void);    /* reset + code extension */
    unsigned int isp;         /* initial stack pointer */
    unsigned int dpp;         /* direct page pointer */
    @port void (*vector[58])(void);     /* interrupt vectors */
} _reset = {
/*0000:*/  /*  vector 0: (ixksk) = $0110
                            bank 0, stack at $1xxxx
                            start address :
                            [15:12] = reserved
                            [11:8]  = initial ZK
                            [7:4]   = initial SK
                            [3:0]   = initial PK
                     */
/*0002: */   _stext,     /* vector 1, initial PC  */
/*0004: */   0x002E,     /* vector 2, Stack Pointer, [15:0]  = initial SP */
/*0006:*/    0x0000,     /* vector 3, direct page pointer,
                            initial IZ (Direct Page Pointer) */

           /* BEGIN VECTORS */
/*000A:*/    _dummit,    /* vector 5, Bus Error (BERR) */
/*0008:*/    _dummit,    /* vector 4, Breakpoint (BKPT) */
/*000C:*/    (@port void *)0x02FA,    /* vector 6, Software Interrupt (SWI) to call MCX16 services */
/*000E:*/    _default,    /* vector 7, Illegal Instruction */
/*0010:*/    _default,    /* vector 8, Divide by Zero */
/*0012:*/    _dummit,     /* vector 9, Unassigned, Reserved */
/*0014:*/    _dummit,     /* vector A, Unassigned, Reserved */
/*0016:*/    _dummit,     /* vector B, Unassigned, , Reserved */
/*0018:*/    _dummit,     /* vector C, Unassigned, Reserved */
/*001A:*/    _dummit,     /* vector D, Unassigned, Reserved */
/*001C:*/    _dummit,     /* vector E, Unassigned, Reserved */
/*001E:*/    _dummit,     /* vector F, Uninitialized Interrupt */
/*0020:*/    _dummit,     /* vector 10, Unassigned, Reserved */
/*0022:*/    _dummit,     /* vector 11, Level 1 Interrupt Autovector */
/*0024:*/    _dummit,     /* Vector 12, Level 2 Interrupt Autovector */
/*0026:*/    _dummit,     /* Vector 13, Level 3 Interrupt Autovector */
/*0028:*/    _dummit,     /* Vector 14, Level 4 Interrupt Autovector */
/*002A:*/    _dummit,     /* Vector 15, Level 5 Interrupt Autovector */
/*002C:*/    _dummit,     /* Vector 16, Level 6 Interrupt Autovector */
/*002E:*/    _dummit,     /* Vector 17, Level 7 Interrupt Autovector */
/*0030:*/    _dummit,     /* Vector 18, Spurious Interrupt */
/*0032:*/    _dummit,     /* vector 19 user-defined interrupt */
/*0034:*/    _dummit,     /* vector 1A user-defined interrupt */
/*0036:*/    _dummit,     /* vector 1B user-defined interrupt */
/*0038:*/    _dummit,     /* vector 1C user-defined interrupt */
/*003A:*/    _dummit,     /* vector 1E user-defined interrupt */
/*003C:*/    _dummit,     /* vector 1E user-defined interrupt */
/*003E:*/    _dummit,     /* vector 1F user-defined interrupt */
/*0040:*/    _dummit,     /* vector 20 user-defined interrupt */
/*0042:*/    _dummit,     /* vector 21 user-defined interrupt */
/*0044:*/    _dummit,     /* vector 22 user-defined interrupt */
/*0046:*/    _dummit,     /* vector 23 user-defined interrupt */
/*0048:*/    _dummit,     /* vector 24 user-defined interrupt */
/*004A:*/    _dummit,     /* vector 25 user-defined interrupt */
/*004C:*/    _dummit,     /* vector 26 user-defined interrupt */
/*004E:*/    _dummit,     /* vector 27 user-defined interrupt */
/*0050:*/    _dummit,     /* vector 28 user-defined interrupt */
/*0052:*/    _dummit,     /* vector 29 user-defined interrupt */
/*0054:*/    _dummit,     /* vector 2A user-defined interrupt */
/*0056:*/    _dummit,     /* vector 2B user-defined interrupt */
/*0058:*/    _dummit,     /* vector 2C user-defined interrupt */
/*005A:*/    _dummit,     /* vector 2D user-defined interrupt */
/*005C:*/    _dummit,     /* vector 2E user-defined interrupt */
/*005E:*/    _dummit,     /* vector 2F user-defined interrupt */
/*0060:*/    _dummit,     /* vector 30 user-defined interrupt */
/*0062:*/    _dummit,     /* vector 31 user-defined interrupt */
/*0064:*/    _dummit,     /* vector 32 user-defined interrupt */
/*0066:*/    _dummit,     /* vector 33 user-defined interrupt */
/*0068:*/    _dummit,     /* vector 34 user-defined interrupt */
/*006A:*/    _dummit,     /* vector 35 user-defined interrupt */
/*006C:*/    _dummit,     /* vector 36 user-defined interrupt */
/*006E:*/    _dummit,     /* vector 37 user-defined interrupt */
/*0070:*/    (@port void *)&SysTable,   /* vector 38 points to SysTable address */
/*0072:*/    (@port void *)0x81E,  /* vector 39 as a null task */
/*0074:*/    SCIIsr,      /* Vector 3A, Interrupt Service Routine SCI */
};


/* empty function to receive an undefined interrupt
 */
static @port void _dummit(void) /* just contains rti */
{
    /* enter background debug mode */
    _asm("BGND\n");
    _asm("nop\n");
}